httpclient에서 httpentity를 문자열로 바꾸는 가장 우아하고 올바른 방법은 무엇입니까?
-
19-09-2019 - |
문제
나는 그것을 사용하여 웹 페이지를 가져오고있다 Apache httpcomponents Java Library. 결과를 연결 한 후 나는 얻는다 HttpEntity
방법이 있습니다 getContent()
반환합니다 InputStream
또한 방법이 있습니다 writeTo()
출력 스트림에 씁니다.
정보를 추출하기 위해 결과를 문자열로 바꾸고 싶습니다. 이 작업을 수행하는 가장 우아하고 안전한 방법은 무엇입니까?
가능한 솔루션 :
- a에 쓰십시오
ByteArrayOutputStream
그런 다음 해당 바이트를 문자열 생성자로 문자열로 변환합니다. - InputStreamReader를 사용하여 스트림에서 곧바로 읽고 StringBuilder에 넣습니다.
이 두 가지 모두 약간 추악하다고 느낍니다. 이것들 중 하나를 선택하는 것이 좋습니다. 또는 다른 것을 선택 하시겠습니까?
해결책
(의사)는 어떻습니까 :
BasicResponseHandler handler = new org.apache.http.impl.client.BasicResponseHandler ();
String str = httpClient.execute(request, handler);
이 경우 예외를 스스로 처리해야합니다.
다른 팁
System.out.println (entityutil.toString (httpresponse.getentity ()));
못 생겼지 만, 그것이 유일한 방법이라고 생각합니다. 당신이 사용할 수있는 ioutils.tostring () Commons-Io에서 자신의 코드를 작성하지 않아도됩니다.
제휴하지 않습니다 StackOverflow