如何压缩JSONObject在Android中通过Http发送?

如何压缩JSONObject在Android中通过Http发送?,第1张

如何压缩JSONObject在Android中通过Http发送?

根据此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压缩的内容发送到客户端。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5623010.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存