본문 바로가기

Snippets

Java에서 HTTP 요청시 Content-Encoding이 GZIP 으로 인코딩 되었을 경우

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
HTTP 연결 시 Accept-Encoding 에 gzip , deflate 로 지정이 되었을 경우 서버에서는 트래픽 양을 줄이기 위하여 컨텐츠를 모두 압축하여 보내준다.물론 서버 설정에서 gzip으르 지원하지 않도록 설정을 바꿀 수 있지만 그렇게 되면 트래픽이 과도하게 발생된다.

어쨌건간에 Http로 연결을 한 후 gzip으로 인코딩이 되었다면 Java에서 GZIPInputStream 으로 간단히 해결 할 수 있다.

이 예제는 HttpURLConnection 으로 접근을 했을 때를 가정하고 만든 소스이다.

HttpURLConnection huc = (HttpURLConnection)url.openConnection();

... 이곳에는 huc.setRequestProperty  셋팅하기 ...

int httpStatus = huc.getResponseCode();
		
if(httpStatus < 300)   // 성공 했을 경우
{
	BufferedReader br = 
               new BufferedReader(new InputStreamReader(new GZIPInputStream(huc.getInputStream())));
			
	while(br.ready())
    {
	    System.out.println(br.readLine());
	}
			
	br.close();
}
		
huc.disconnect();