在httpclient中,将HttpEntity转换为String的最优雅/正确的方法是什么?

我正在使用Apache httpcomponents Java库获取一个网页。 连接结果后,我得到一个HttpEntity ,它有一个方法getContent() ,它返回一个InputStream ,还有一个写入OutputStream的方法writeTo()

我想将结果转换为String以提取信息。 最优雅(和安全)的方法是什么?

一些可能的方案:

  • 写入ByteArrayOutputStream ,然后使用String构造函数将这些字节转换为String
  • 使用InputStreamReader直接从流中读取,并放入StringBuilder

这些都感觉有点难看。 你会建议选择其中一种还是别的?

怎么样(伪):

 BasicResponseHandler handler = new org.apache.http.impl.client.BasicResponseHandler (); String str = httpClient.execute(request, handler); 

在这种情况下,您必须自己处理exception。

System.out.println(EntityUtils.toString(httpResponse.getEntity()));

它可能很难看,但我认为这是唯一的方法。 您可以使用Commons-IO中的IOUtils.toString() ,而无需编写自己的代码。