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

时间:2010-01-11 17:29:38

标签: java apache-httpcomponents

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

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

一些可能的解决方案:

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

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

3 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:4)

怎么样(伪):

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

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

答案 2 :(得分:0)

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