在httpclient中,将httpentity转换为字符串的最优雅/最正确的方法是什么?

StackOverflow https://stackoverflow.com/questions/2043580

  •  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出发,尽管不必编写您自己的代码。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top