根据此http://android-developers.blogspot.com/2011/09/androids-http-
clients.html如果您使用的是Gingerbread或更高版本,则HttpURLConnection会自动添加gzip压缩:
在Gingerbread中,我们添加了透明响应压缩。HttpURLConnection将自动将此标头添加到传出请求中,并处理相应的响应:
接受编码:gzip
然后,您的网络服务器将需要处理gzip压缩。
编辑:
使用Java Servlet提供压缩的内容 “使用Java Servlet服务压缩的内容”)
编辑2:
使用DefaultHttpClient进行Gzip压缩使用HttpClient启用GZip压缩
private static final String HEADER_ACCEPT_ENCODING = "Accept-Encoding";private static final String ENCODING_GZIP = "gzip";final DefaultHttpClient client = new DefaultHttpClient(manager, parameters);client.addRequestInterceptor(new HttpRequestInterceptor() { public void process(HttpRequest request, HttpContext context) { // Add header to accept gzip content if (!request.containsHeader(HEADER_ACCEPT_ENCODING)) { request.addHeader(HEADER_ACCEPT_ENCODING, ENCODING_GZIP); } }});client.addResponseInterceptor(new HttpResponseInterceptor() { public void process(HttpResponse response, HttpContext context) { // Inflate any responses compressed with gzip final HttpEntity entity = response.getEntity(); final Header encoding = entity.getContentEncoding(); if (encoding != null) { for (HeaderElement element : encoding.getElements()) { if (element.getName().equalsIgnoreCase(ENCODING_GZIP)) { response.setEntity(new InflatingEntity(response.getEntity())); break; } } } }});
编辑3:
这是另一个关于Java的HTTPClient的内容gzipPOST请求的gzip。您需要在发布数据之前手动gzip压缩数据,因为正常的http /gzip *** 作是服务器将gzip压缩的内容发送到客户端。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)