zoukankan      html  css  js  c++  java
  • 61、请求数据进行gizp压缩

    1、请求时进行头部处理

    1 /**
    2      * 设置通用消息头
    3      *
    4      * @param request
    5      */
    6     public void setHeader(HttpUriRequest request) {
    7         // request.setHeader("Content-Type", "application/soap+xml");
    8         request.setHeader("Accept-Encoding", "gzip,deflate");
    9     }

    2、读取服务器返回数据时进行判断(服务器是否也返回的是经过gzip压缩的),如果是压缩后的数据,则更改读取数据方式

     1 /**
     2      * 解析HttpResponse数据
     3      *
     4      * @param response
     5      * @return String
     6      * @throws NetworkException
     7      */
     8     private static String read(HttpResponse response) throws NetworkException {
     9         String result = "";
    10         HttpEntity entity = response.getEntity();
    11         InputStream inputStream;
    12         try {
    13             inputStream = entity.getContent();
    14             ByteArrayOutputStream content = new ByteArrayOutputStream();
    15 
    16             Header header = response.getFirstHeader("Content-Encoding");
    17             if (header != null
    18                     && header.getValue().toLowerCase().indexOf("gzip") > -1) {
    19                 inputStream = new GZIPInputStream(inputStream);
    20             }
    21 
    22             // Read response into a buffered stream
    23             int readBytes = 0;
    24             byte[] sBuffer = new byte[512];
    25             while ((readBytes = inputStream.read(sBuffer)) != -1) {
    26                 content.write(sBuffer, 0, readBytes);
    27             }
    28             // Return result from buffered stream
    29             result = new String(content.toByteArray());
    30             return result;
    31         } catch (IllegalStateException e) {
    32             throw new NetworkException(e);
    33         } catch (IOException e) {
    34             throw new NetworkException(e);
    35         } catch (OutOfMemoryError e) {
    36             throw new NetworkException(e);
    37         }
    38     }
  • 相关阅读:
    find命令详解
    wget命令
    国内镜像源
    向linux服务器上传下载文件方式收集
    一些初学shell自己写的一些练习题脚本
    在Linux系统下mail命令的用法
    MAC 下安装 SVN
    天气预报api整理
    pdi vcard-2.1
    Android Studio 问题锦集【持续更新】
  • 原文地址:https://www.cnblogs.com/kunyashaw/p/4934949.html
Copyright © 2011-2022 走看看