2010-12-07 8 views
3

안드로이드에서 HttpClient를 사용하여 게시물 요청에 대해 gzip을 보내고 싶습니다.안드로이드의 GZIP

GZIPOutputstream에서 전달되는 OutputStream을 가져올 위치는 어디입니까?

발췌 문장이 있습니까?

+0

이 링크를보세요. http://stackoverflow.com/q/6717165/779408 – breceivemail

답변

7

안녕 UseHttpUriRequest를 아래 그림과 같이 다음

String urlval=" http"//www.sampleurl.com/"; 
    HttpUriRequest req = new HttpGet(urlval); 
    req.addHeader("Accept-Encoding", "gzip"); 
    httpClient.execute(req); 

및 콘텐츠 인코딩에 대한 응답을 확인 아래와 같이 : 데이터가 너무 크지

InputStream is = response.getEntity().getContent(); 
Header contentEncoding = response.getFirstHeader("Content-Encoding"); 
if (contentEncoding != null && contentEncoding.getValue().equalsIgnoreCase("gzip")) { 
    is = new GZIPInputStream(is); 
} 
+1

gzip ' d 요청. 위의 코드는 gzip으로받은 응답을 받아 들일 수있을 때 서버에 알려주지 만 나가는 콘텐츠는 gzip으로 처리하지 않습니다. –

+0

gzip 콘텐츠를 수신하는지 테스트하는 것은 유용하지만 유용합니다. – neobie

2

경우, 당신은 이런 식으로 작업을 수행 할 수 있습니다

HttpClient httpClient = new DefaultHttpClient(); 
HttpPost httpost = new HttpPost(POST_URL); 

ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
GZIPOutputStream gos = new GZIPOutputStream(baos); 
gos.write(data.getBytes()); 
gos.close(); 
ByteArrayEntity byteArrayEntity = new ByteArrayEntity(baos.toByteArray()); 
httpost.setEntity(byteArrayEntity);