En Java, en utilisant HttpPost (apache commons HttpClient) lors de l'envoi de JSON POST - dois-je encoder le corps?

Je suis l'envoi d'un séjour JSON requête POST à l'aide de Apache HttpClient (pour une 3ème partie de l'API)

  • Dois-je encoder au format JSON corps?
  • Et si quelque chose dans le contenu est déjà codées dans l'URL (par exemple, j'ai envoyer le HTML qui a des liens avec l'URL encodée caractères, par exemple @22) dois-je attendre pour obtenir le contenu de l'autre côté, sans qu'il soit décodé?

E. g. si je suis en train de faire quelque chose comme ceci

String html = "<a href='http://example.com?charOfTheDay=%22'>click me</a>";
//Build the JSON object 

JSONObject jsonObj = new JSONObject();
jsonObj.put("html", html);
jsonObj.put("otherKey",otherValue);
//...

//Create the POST object and add the parameters
HttpPost httpPost = new HttpPost(url);
StringEntity entity = new StringEntity(jsonObj.toString(), HTTP.UTF_8);
entity.setContentType("application/json");
httpPost.setEntity(entity);
HttpClient client = new DefaultHttpClient();
HttpResponse response = client.execute(httpPost);

Dois-je m'attendre d'obtenir la même valeur sur l'extrémité de réception, après l'obtention de la valeur de la "html" clé?

par exemple sur la fin de réception

//after parsing the request string to a JSON object
String html = inputJsonObject.get("html") 
//should return "<a href='http://example.com?charOfTheDay=%22'>click me</a>"

Existe-il d'autres étapes que j'ai besoin de faire pour être sûr de ce que j'envoie est ce qui est reçu comme "est"?

OriginalL'auteur Eran Medan | 2012-06-01