java httprequest从请求中获取正文

时间:2012-09-21 15:46:13

标签: java httprequest apache-httpcomponents

我收到了客户的帖子请求。这个请求包含一些我想要在服务器端分开的json数据。我使用httpcore创建了服务器。 HttpRequestHandler用于处理请求。这是我认为可行的代码

    HttpEntity entity = ((HttpEntityEnclosingRequest)request).getEntity();

                    InputStream inputStream = entity.getContent();

                    String str = inputStream.toString();

                    System.out.println("Post contents: " + str);*/

但我似乎找不到使用HttpRequest对象获取请求正文的方法。如何从请求对象中提取主体?感谢

2 个答案:

答案 0 :(得分:5)

您应该使用EntityUtils及其toString方法:

String str = EntityUtils.toString(entity);

getContent返回流,您需要使用例如手动读取其中的所有数据。 BufferedReader。但EntityUtils为你做了 你不能在流上使用toString,因为它返回对象本身的字符串表示而不是它的数据 还有一件事:AFAIK GET请求不能包含正文,因此您似乎从客户端获得了POST请求。

答案 1 :(得分:1)

...而MultipartEntity使用此:

    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    try {
        entity.writeTo(baos);
    } catch (IOException e) {
        e.printStackTrace();
    }
    String text = new String(baos.toByteArray());