首頁 > 後端開發 > php教程 > android介面中json資料的傳輸中使用gzip壓縮

android介面中json資料的傳輸中使用gzip壓縮

WBOY
發布: 2016-07-29 09:13:43
原創
1637 人瀏覽過

<span style="font-size:18px;">当前android访问接口传输数据多使用json格式(简单易解析跨平台),为了节省带宽和传输时间服务器往往会在传输前进行gzip压缩,下面是几个需要注意的地方。</span>
登入後複製

     1. 針對php伺服器,在存取介面的時候必須在header帶上參數Accept-Encoding: gzip, deflate,不然即使後台做了gzip壓縮,也不會進行真正的壓縮。

     2.如果服務端對資料進行了gzip壓縮,那麼在ap取得資料前需要先對資料進行gzip解壓即:

<span style="font-size:18px;">public String getResponseBodyAsString(HttpResponse response) throws IO<strong>Exception</strong> {
        GZIPInputStream gzin;
        if (response.getEntity() != null) {
            Header header = response.getFirstHeader("Content-Encoding");
            if (header != null && header.getValue().toLowerCase().indexOf("gzip") != -1) {
                gzin = new GZIPInputStream(response.getEntity().getContent());
                InputStreamReader isr = new InputStreamReader(gzin, "UTF-8");
                BufferedReader br = new BufferedReader(isr);
                StringBuilder sb = new StringBuilder();
                String tmp;
                while ((tmp = br.readLine()) != null) {
                    sb.append(tmp);
                    sb.append("\r\n");
                }
                br.close();
                isr.close();
                return sb.toString();
            } else {
                // 否则正常返回
                return EntityUtils.toString(response.getEntity(), HTTP.UTF_8);
            }
        } else {
            return null;
        }
    }</span>
登入後複製
  
以上就介紹了android介面中json資料的傳輸中使用gzip壓縮,包含了Exception方面的內容,希望對PHP教學有興趣的朋友有所幫助。


相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板