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

Nic*_*cue 5 java apache-httpcomponents

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

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

一些可能的解决方

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

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

小智 6

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


Nat*_*ate 4

怎么样(伪):

BasicResponseHandler handler = new org.apache.http.impl.client.BasicResponseHandler ();    
String str = httpClient.execute(request, handler);
Run Code Online (Sandbox Code Playgroud)

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