2013-05-08 6 views
5

설명서가 그것에 대해 말하는 것을 이해할 수 없습니다.안드로이드 HttpURLConnection : gzip 압축

기본적으로이 HttpURLConnection 구현은 서버에서 gzip 압축을 사용하도록 요청합니다. getContentLength()는 전송 된 바이트 수를 반환하므로 getInputStream()에서 읽을 수있는 바이트 수를 예측할 수는 없습니다. 대신, 스트림이 고갈 될 때까지 읽습니다. read()는 -1을 반환합니다. Gzip 압축은 요청 헤더에 허용 인코딩을 설정하여 사용하지 않도록 설정할 수 있습니다

urlConnection.setRequestProperty("Accept-Encoding", "identity"); 

내가 현재 구현이 실제로 (conn.getInputStream()를 사용)을 반환하기 전에 스트림을 압축 해제하면 알고 싶다거나하는 경우 연결은 자동으로 gzip 인코딩을위한 헤더를 보내고 그걸로 관리해야한다고 말합니다.

감사합니다.

답변

11

당신은 이것을 처리 할 필요가 없습니다. 단지 this 블로그 게시물에서 conn.getInputStream()

를 사용 진저 브레드에서

, 우리는 투명 응답 압축을 추가했다. HttpURLConnection의 자동 나가는 요청에이 헤더를 추가하고, 해당 응답 처리합니다 :

수락 인코딩 : gzip을

+1

출처 : [안드로이드 개발자 블로그 - 안드로이드의 HTTP 클라이언트 (HTTP : // 안드로이드 개발자. blogspot.com/2011/09/androids-http-clients.html) – Czechnology