1. ホーム
  2. android

[解決済み] Android: HTTP通信は "Accept-Encoding: gzip "を使用すべきである。

2022-11-16 18:19:31

質問

JSONデータを要求するウェブサーバーへのHTTP通信があります。私は、このデータストリームを次のように圧縮したいと思います。 Content-Encoding: gzip . を設定する方法はありますか? Accept-Encoding: gzip を設定する方法はありますか?の検索は gzip を Android References で検索しても、HTTP に関連するものは何も表示されません。 はこちら .

どのように解決するのですか?

http ヘッダを使用して、接続が gzip エンコードされたデータを受け入れることができることを示す必要があります。

HttpUriRequest request = new HttpGet(url);
request.addHeader("Accept-Encoding", "gzip");
// ...
httpClient.execute(request);

レスポンスのコンテンツエンコーディングをチェックする。

InputStream instream = response.getEntity().getContent();
Header contentEncoding = response.getFirstHeader("Content-Encoding");
if (contentEncoding != null && contentEncoding.getValue().equalsIgnoreCase("gzip")) {
    instream = new GZIPInputStream(instream);
}