0

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

    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 对象。

4

3 回答 3

2

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

String result = EntityUtils.toString(response.getEntity());
JSONObject jo = new JSONObject(result);
于 2012-10-19T19:40:32.023 回答
0

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

一旦你读过它,将字节转换为字符,这将是 json,你可以使用它来构建一个 json 对象,比如使用“jackson”库的 jsonNode。

于 2012-10-19T19:44:48.223 回答
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);
于 2012-10-19T20:08:51.303 回答