在httpclient中,将httpentity转换为字符串的最优雅/最正确的方法是什么?
-
19-09-2019 - |
题
我正在使用 apache httpcomponents java库. 。连接结果后,我得到的是 HttpEntity
有一种方法 getContent()
返回 InputStream
并且还有一种方法 writeTo()
将其写入输出流。
我想将结果变成用于提取信息的字符串。做这件事的最优雅(和安全)的方法是什么?
一些可能的解决方案:
- 写信给
ByteArrayOutputStream
然后将这些字节转换为带有字符串构造函数的字符串 - 使用InputStreamReader直接从流中读取,然后放入StringBuilder中
这两个都有点丑陋。您是否建议选择其中之一或其他?
解决方案
那(伪)呢:
BasicResponseHandler handler = new org.apache.http.impl.client.BasicResponseHandler ();
String str = httpClient.execute(request, handler);
在这种情况下,您必须自己处理异常。
其他提示
system.out.println(entityutils.tostring(httpresponse.getentity()));
这可能很丑陋,但我认为这是这样做的唯一方法。您可以使用 ioutils.tostring() 从Commons-io出发,尽管不必编写您自己的代码。
不隶属于 StackOverflow