Voici ce que tu dois faire:
- Obtenez le Apache HttpClient, cela vous permettrait de faire la demande requise
- Créez une requête HttpPost avec elle et ajoutez l'en-tête "application / x-www-form-urlencoded"
- Créez une StringEntity que vous lui passerez JSON
- Exécuter l'appel
Le code ressemble à peu près (vous devrez toujours le déboguer et le faire fonctionner)
//Deprecated
//HttpClient httpClient = new DefaultHttpClient();
HttpClient httpClient = HttpClientBuilder.create().build(); //Use this instead
try {
HttpPost request = new HttpPost("http://yoururl");
StringEntity params =new StringEntity("details={\"name\":\"myname\",\"age\":\"20\"} ");
request.addHeader("content-type", "application/x-www-form-urlencoded");
request.setEntity(params);
HttpResponse response = httpClient.execute(request);
//handle response here...
}catch (Exception ex) {
//handle exception here
} finally {
//Deprecated
//httpClient.getConnectionManager().shutdown();
}
Vous pouvez utiliser la bibliothèque Gson pour convertir vos classes java en objets JSON.
Créez une classe pojo pour les variables que vous souhaitez envoyer selon l'exemple ci-dessus
devient
une fois que vous avez défini les variables dans la classe pojo1, vous pouvez envoyer cela en utilisant le code suivant
et ce sont les importations
et pour GSON
la source
Réponse de @ momo pour Apache HttpClient, version 4.3.1 ou ultérieure. J'utilise
JSON-Java
pour créer mon objet JSON:la source
Il est probablement plus simple d'utiliser HttpURLConnection .
http://www.xyzws.com/Javafaq/how-to-use-httpurlconnection-post-data-to-web-server/139
Vous utiliserez JSONObject ou autre pour construire votre JSON, mais pas pour gérer le réseau; vous devez le sérialiser, puis le transmettre à un HttpURLConnection à POST.
la source
j.toString()
.la source
Essayez ce code:
la source
application/json
fois comme en-tête d'acceptation et comme type de contenuDefaultHttpClient
soit obsolète.J'ai trouvé cette question à la recherche d'une solution sur la façon d'envoyer une demande de publication du client java à Google Endpoints. Au-dessus des réponses, très probablement correctes, mais ne fonctionnent pas dans le cas de Google Endpoints.
Solution pour Google Endpoints.
L'en-tête du type de contenu doit être défini sur "application / json".
Cela peut certainement être fait en utilisant HttpClient.
la source
Vous pouvez utiliser le code suivant avec Apache HTTP:
De plus, vous pouvez créer un objet json et placer des champs dans l'objet comme ceci
la source
Pour Java 11, vous pouvez utiliser un nouveau client HTTP :
Vous pouvez utiliser l'éditeur de InputStream, String, File. Vous pouvez convertir JSON en String ou IS avec Jackson.
la source
Java 8 avec apache httpClient 4
la source
Je recommande http-request construit sur apache http api.
Si vous souhaitez envoyer
JSON
le corps de la demande, vous pouvez:Je recommande vivement de lire la documentation avant utilisation.
la source