Heim >Backend-Entwicklung >PHP-Tutorial >Die Gzip-Komprimierung wird bei der Übertragung von JSON-Daten in der Android-Schnittstelle verwendet

Die Gzip-Komprimierung wird bei der Übertragung von JSON-Daten in der Android-Schnittstelle verwendet

WBOY
WBOYOriginal
2016-07-29 09:13:431640Durchsuche

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

1. Für den PHP-Server müssen Sie beim Zugriff auf die Schnittstelle die Parameter Accept-Encoding: gzip, deflate im Header mitbringen, andernfalls erfolgt auch die Gzip-Komprimierung Im Hintergrund findet keine echte Komprimierung statt.

2. Wenn der Server gzip die Daten komprimiert, müssen die Daten gzip dekomprimiert werden, bevor der AP die Daten erhält:

<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>

       

Das Obige stellt die Verwendung der GZIP-Komprimierung bei der Übertragung von JSON-Daten in der Android-Schnittstelle vor, einschließlich Ausnahmeinhalten. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn