Comment puis-je envoyer de l'objet json en post http en java
Je veux envoyer un objet JSON(Remarque: il ne doit pas être convertie en une chaîne de caractères comme du côté serveur, le code est basé sur le Printemps de démarreur de projet et a params (@RequestBody PPCE ppce) )j'ai mon code ci-dessous mais il transforme le corps en une chaîne de caractères qui me donne 400 bad request .
private void sendData(String ip){
try{
JSONObject json=new JSONObject();
json.put("time_range", "22-23");
json.put("flow_id", "786");
json.put("ip_a", "192.65.78.22");
json.put("port_a", "8080");
json.put("regex", "%ab");
URL url=new URL("http://"+ip+":8080/pcap");
HttpURLConnection httpcon=(HttpURLConnection)url.openConnection();
httpcon.setDoOutput(true);
httpcon.setRequestMethod("POST");
httpcon.setRequestProperty("Accept", "application/json");
httpcon.setRequestProperty("Content-Type", "application/json");
Cookie cookie=new Cookie("user", "abc");
cookie.setValue("store");
httpcon.setRequestProperty("Accept", "application/json");
httpcon.setRequestProperty("Cookie", cookie.getValue());
OutputStreamWriter output=new OutputStreamWriter(httpcon.getOutputStream());
System.out.println(json);
output.write(json.toString());
httpcon.connect();
String output1=httpcon.getResponseMessage();
System.out.println(output1);
}catch(Exception e){
}
}
Remarque: côté Serveur code est
@RequestMapping(value = URIConstansts.PCAP, produces = { "application/json" }, method = RequestMethod.POST)
public ResponseEntity getPcap(HttpServletRequest request,@RequestBody PcapParameters pcap_params )
OriginalL'auteur arpit joshi | 2015-09-25
Vous devez vous connecter pour publier un commentaire.
Voici ce que vous devez faire:
Le code ressemble plus ou moins (vous aurez encore besoin de le corriger et de le faire fonctionner)
lol.. que vous avez copié à partir d'ici: stackoverflow.com/questions/7181534/...
Android version 6.0 supprime la prise en charge pour le client HTTP Apache. Si votre application est l'utilisation de ce client et les objectifs Android 2.3 (API de niveau 9) ou plus, utilisez le
HttpURLConnection
classe à la place.OriginalL'auteur dawidklos
Je préfère continuer avec HttpURLConnection sur HttpClient. Quelques commentaires sur les avantages peuvent être trouvés à la cette question SE
output.write(json.toString());
doit être modifié pour
Ne pas oublier d'appeler la méthode flush() après la rédaction de l'objet et format UTF-8 doit être demandé avant l'opération d'écriture.
Non sa ne fonctionne pas je ne suis pas d'obtenir la demande sur le côté serveur ,ci-dessous, de côté de serveur de code @RequestMapping(valeur = URIConstansts.PPCE, produit = { "application/json" }, method = RequestMethod.POST) public ResponseEntity getPcap(HttpServletRequest request,@RequestBody PcapParameters pcap_params )
Ajouter une ligne de votre code. httpcon.getResponseCode(). Permet de voir la valeur pour une analyse plus approfondie
OriginalL'auteur Ravindra babu