httpclient에서 httpentity를 문자열로 바꾸는 가장 우아하고 올바른 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/2043580

  •  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에서 자신의 코드를 작성하지 않아도됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top