最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android  GZip的使用-開發(fā)中網(wǎng)絡(luò)請求的壓縮實例詳解

 更新時間:2016年11月10日 17:25:21   投稿:lqh  
這篇文章主要介紹了Android GZip的使用-開發(fā)中網(wǎng)絡(luò)請求的壓縮實例詳解的相關(guān)資料,需要的朋友可以參考下

Android  GZip:

gzip是GNUzip的縮寫,它是一個GNU自由軟件的文件壓縮程序。

HTTP協(xié)議上的GZIP編碼是一種用來改進WEB應(yīng)用程序性能的技術(shù)。一般服務(wù)器中都安裝有這個功能模塊的,服務(wù)器端不需做改動。

當(dāng)瀏覽器支持gzip 格式的時候, 服務(wù)器端會傳輸gzip格式的數(shù)據(jù)。

從Http 技術(shù)細節(jié)上講,就是 http request 頭中 有 "Accept-Encoding", "gzip" ,response 中就有返回頭Content-Encoding=gzip

我們現(xiàn)在從瀏覽器上訪問玩啥網(wǎng)站都是gzip格式傳輸?shù)摹?br />

但是我們現(xiàn)在Android 客戶端,沒有用gzip 格式訪問。

同樣的的道理,我們可以在android 客戶端 request 頭中加入 "Accept-Encoding", "gzip" ,來讓服務(wù)器傳送gzip 數(shù)據(jù)。

具體代碼如下。

  private String getJsonStringFromGZIP(HttpResponse response) {
    String jsonString = null;
    try {
      InputStream is = response.getEntity().getContent();
      BufferedInputStream bis = new BufferedInputStream(is);
      bis.mark(2);
      // 取前兩個字節(jié)
      byte[] header = new byte[2];
      int result = bis.read(header);
      // reset輸入流到開始位置
      bis.reset();
      // 判斷是否是GZIP格式
      int headerData = getShort(header);
      // Gzip 流 的前兩個字節(jié)是 0x1f8b
      if (result != -1 && headerData == 0x1f8b) {
        LogUtil.d("HttpTask", " use GZIPInputStream ");
        is = new GZIPInputStream(bis);
      } else {
        LogUtil.d("HttpTask", " not use GZIPInputStream");
        is = bis;
      }
      InputStreamReader reader = new InputStreamReader(is, "utf-8");
      char[] data = new char[100];
      int readSize;
      StringBuffer sb = new StringBuffer();
      while ((readSize = reader.read(data)) > 0) {
        sb.append(data, 0, readSize);
      }
      jsonString = sb.toString();
      bis.close();
      reader.close();
    } catch (Exception e) {
      LogUtil.e("HttpTask", e.toString(),e);
    }
 
    LogUtil.d("HttpTask", "getJsonStringFromGZIP net output : " + jsonString );
    return jsonString;
  }
 
  private int getShort(byte[] data) {
    return (int)((data[0]<<8) | data[1]&0xFF);
  }

參考 ,注意實際使用中,我發(fā)現(xiàn)gzip 流前兩個字節(jié)是0x1e8b ,不是0x1f8b .后來檢查一下code ,代碼處理錯誤,加上第二個字節(jié)的時候需 &0xFF0x1f8b

可參考標(biāo)準(zhǔn)

http://www.gzip.org/zlib/rfc-gzip.html#file-format
http://xmagicj.diandian.com/post/2011-08-08/3641381

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • android View 繪制完成監(jiān)聽的實現(xiàn)方法

    android View 繪制完成監(jiān)聽的實現(xiàn)方法

    今天小編就為大家分享一篇android View 繪制完成監(jiān)聽的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • Flutter進階之實現(xiàn)動畫效果(三)

    Flutter進階之實現(xiàn)動畫效果(三)

    這篇文章主要為大家詳細介紹了Flutter進階之實現(xiàn)動畫效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Android實現(xiàn)Ant Design 自定義表單組件

    Android實現(xiàn)Ant Design 自定義表單組件

    Ant Design 組件提供了Input,InputNumber,Radio,Select,uplod等表單組件,下面通過本文給大家詳細介紹Android實現(xiàn)Ant Design 自定義表單組件,需要的的朋友參考下吧
    2017-06-06
  • Android usb設(shè)備權(quán)限查詢及自動獲取詳解流程

    Android usb設(shè)備權(quán)限查詢及自動獲取詳解流程

    本篇文章介紹了我想要獲取Android系統(tǒng)usb設(shè)備使用權(quán)限時遇到的問題,以及解決該問題的過程及思路,通讀本篇對大家的學(xué)習(xí)或工作具有一定的價值,需要的朋友可以參考下
    2021-10-10
  • Android使用Pull解析器解析xml文件的實現(xiàn)代碼

    Android使用Pull解析器解析xml文件的實現(xiàn)代碼

    Android使用Pull解析器解析xml文件的實現(xiàn)代碼,需要的朋友可以參考一下
    2013-02-02
  • Android仿QQ圓形頭像個性名片

    Android仿QQ圓形頭像個性名片

    這篇文章主要為大家詳細介紹了Android仿QQ圓形頭像個性名片的制作方法,涉及圓形頭像和光環(huán)波形設(shè)計,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • 總結(jié)Android中多線程更新應(yīng)用的頁面信息的方式

    總結(jié)Android中多線程更新應(yīng)用的頁面信息的方式

    這篇文章主要介紹了總結(jié)Android中多線程更新應(yīng)用的頁面信息的方式,文中共總結(jié)了runOnUiThread、Handler、AsyncTask異步以及View直接在UI線程中更新的方法,需要的朋友可以參考下
    2016-02-02
  • Android自定義定時鬧鐘開發(fā)

    Android自定義定時鬧鐘開發(fā)

    這篇文章主要為大家詳細介紹了Android自定義定時鬧鐘開發(fā),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • Android?Flutter實現(xiàn)精靈圖的使用詳解

    Android?Flutter實現(xiàn)精靈圖的使用詳解

    在游戲開發(fā)中,精靈圖會將一個人物所有動作放置在一張圖片中,通過坐標(biāo)定位選取其中一張圖展示。本文就來教你如何使用精靈圖,感興趣的可以了解一下
    2022-08-08
  • 簡單實現(xiàn)Android驗證碼

    簡單實現(xiàn)Android驗證碼

    在登錄或者注冊的時候要求輸入驗證碼,這篇文章主要為大家詳細介紹了如何簡單實現(xiàn)Android驗證碼的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12

最新評論

金山区| 东山县| 马尔康县| 张家界市| 屯留县| 郑州市| 曲水县| 突泉县| 临西县| 马公市| 武川县| 五河县| 通许县| 辰溪县| 高淳县| 万全县| 尼勒克县| 女性| 沙湾县| 宜兰市| 武鸣县| 衡阳市| 舟山市| 福清市| 章丘市| 扎兰屯市| 南开区| 博白县| 武城县| 惠安县| 锡林浩特市| 宜州市| 绥棱县| 松桃| 应城市| 桐城市| 晋宁县| 漳浦县| 吴堡县| 象山县| 兰州市|