我收到了客户的帖子请求。这个请求包含一些我想要在服务器端分开的json数据。我使用httpcore创建了服务器。 HttpRequestHandler用于处理请求。这是我认为可行的代码
HttpEntity entity = ((HttpEntityEnclosingRequest)request).getEntity();
InputStream inputStream = entity.getContent();
String str = inputStream.toString();
System.out.println("Post contents: " + str);*/
但我似乎找不到使用HttpRequest对象获取请求正文的方法。如何从请求对象中提取主体?感谢
答案 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());