7

我收到客户的发帖请求。这个请求包含一些我想在服务器端分割的 json 数据。我已经使用 httpcore 创建了服务器。HttpRequestHandler 用于处理请求。这是我认为可以工作的代码

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

                    InputStream inputStream = entity.getContent();

                    String str = inputStream.toString();

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

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

4

2 回答 2

7

你应该使用EntityUtils它的toString方法:

String str = EntityUtils.toString(entity);

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

于 2012-09-21T17:03:38.267 回答
1

...并为此MultipartEntity使用:

    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    try {
        entity.writeTo(baos);
    } catch (IOException e) {
        e.printStackTrace();
    }
    String text = new String(baos.toByteArray());
于 2013-07-02T17:19:31.417 回答