如何通过HttpClient接收JSON对象?

时间:2012-10-19 19:35:21

标签: android json java-ee request httpclient

我在android中使用HttpClient发送帖子请求:

    HttpClient client = new DefaultHttpClient();

    HttpPost request = new HttpPost(hostNameCollection);

    StringEntity se = new StringEntity(jsonObj.toString());

    request.setHeader("Accept", "application/json");
    request.setHeader("Content-type", "application/json");


    request.setEntity(se);
    HttpResponse response = client.execute(request);

    Log.v("HttpLogClient.logJSONObject", "wyslano JSON");

并且我不知道如何在Java EE servlet上接收JSON对象。

3 个答案:

答案 0 :(得分:2)

您需要阅读响应正文文本,然后解析为JSON,

String result = EntityUtils.toString(response.getEntity());
JSONObject jo = new JSONObject(result);

答案 1 :(得分:0)

通过获取正文上的流对象然后阅读它来读取http帖子(服务器端)的正文。

一旦你读了它,把字节转换为字符,这将是json,你可以用它来构建像jsonNode这样的json对象,使用'jackson'libs。

答案 2 :(得分:0)

如果您使用普通servlet,则json流位于HttpServletRequest的主体中:request.getReader()或request.getInputStream();

为了方便起见,您可以使用库处理数据绑定。 看看Genson http://code.google.com/p/genson/

YouClass object = new Genson().deserialize(request.getReader(), YourClass.class);
// or to a plain map
Map<String, Object> map = genson.deserialize(request.getReader(), Map.class);