Warn: Going to buffer response body of large or unknown size. Using getResponseBodyAsStream instead

1566 단어 JAVA
Http 클 라 이언 트 가 getResponseBodyAsString () 을 사용 할 때 경고 가 나타 납 니 다. Go to buffer response body of large or unknown size. getResponseBodyAsStream 대신 사용 하기
이 유 는 돌아 오 는 HTTP 헤드 에 contentLength 가 지정 되 어 있 지 않 거나 contentLength 가 상한 선 이상 (기본 값 은 1M) 이기 때 문 입 니 다.반환 결과 의 크기 가 프로그램 에 현저 한 영향 을 미 치지 않 는 지 확인 할 수 있다 면 이 WARN 은 무시 할 수 있 습 니 다. 로그 설정 에서 HttpClient 의 로그 단 계 를 ERROR 로 바 꾸 어 보고 하지 못 하 게 할 수 있 습 니 다.
솔 루 션: getResponseBodyAsStream () 을 getResponseBodyAsString () 대신 사용 할 수 있 습 니 다.
원본 코드:
String resStr = httpPost.getResponseBodyAsString();
if(StringUtil.isNotEmpty(resStr)){
    resStr = new String(resStr.getBytes("UTF-8"));
}

다음으로 변경:
InputStream streamStr = httpPost.getResponseBodyAsStream();
BufferedReader br = new BufferedReader(new InputStreamReader(streamStr,"UTF-8"));
StringBuffer stringBuffer = new StringBuffer();
String result = "";
while((result = br.readLine())!=null){
     stringBuffer.append(result);
}
String str = stringBuffer.toString();

이렇게 하면 경 고 를 책임 지지 않 을 것 이다.

좋은 웹페이지 즐겨찾기