5

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

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

一些可能的解决方案:

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

这两个都感觉有点丑。您会建议选择其中之一或其他东西吗?

4

3 回答 3

6

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

于 2012-09-27T05:10:34.913 回答
4

怎么样(伪):

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

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

于 2010-01-11T17:41:31.030 回答
0

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

于 2010-01-11T17:40:38.440 回答