中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

okhttp框架-如何對請求數據進行GZIP壓縮

發布時間:2020-06-14 12:06:40 來源:網絡 閱讀:9725 作者:xiaofei_zhang 欄目:開發技術

官方給出的例子是采用攔截器的方式來是實現GZIP壓縮。

/** 攔截器壓縮http請求體,許多服務器無法解析 */
  static class GzipRequestInterceptor implements Interceptor {
    @Override public Response intercept(Chain chain) throws IOException {
      Request originalRequest = chain.request();
      if (originalRequest.body() == null || originalRequest.header("Content-Encoding") != null) {
        return chain.proceed(originalRequest);
      }

      Request compressedRequest = originalRequest.newBuilder()
          .header("Content-Encoding", "gzip")
          .method(originalRequest.method(), gzip(originalRequest.body()))
          .build();
      return chain.proceed(compressedRequest);
    }

    private RequestBody gzip(final RequestBody body) {
      return new RequestBody() {
        @Override public MediaType contentType() {
          return body.contentType();
        }

        @Override public long contentLength() {
          return -1; // 無法知道壓縮后的數據大小
        }

        @Override public void writeTo(BufferedSink sink) throws IOException {
          BufferedSink gzipSink = Okio.buffer(new GzipSink(sink));
          body.writeTo(gzipSink);
          gzipSink.close();
        }
      };
    }
  }


源碼地址


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永寿县| 龙泉市| 南郑县| 阳信县| 犍为县| 新邵县| 安庆市| 额尔古纳市| 沭阳县| 玉树县| 华安县| 闸北区| 滦南县| 安乡县| 镇沅| 杭锦后旗| 克什克腾旗| 会同县| 夹江县| 镇原县| 五家渠市| 富裕县| 绥芬河市| 靖西县| 台前县| 云梦县| 乐平市| 东阳市| 延寿县| 泰宁县| 临城县| 化隆| 迭部县| 松潘县| 永泰县| 海淀区| 阜新| 开封县| 井研县| 库伦旗| 安塞县|