Android: Gzip / Http поддерживается по умолчанию? - PullRequest
4 голосов
/ 06 сентября 2010

Я использую приведенный ниже код для получения данных с нашего сервера, на котором включен Gzip.Мой код уже поддерживает Gzip (возможно, это уже сделано android, а не моей java-программой) или мне нужно добавить / изменить что-то.?Как я могу проверить, что он использует Gzip?По моему мнению, загрузка довольно медленная.

private static InputStream OpenHttpConnection(String urlString) throws IOException {
        InputStream in = null;
        int response = -1;

        URL url = new URL(urlString);
        URLConnection conn = url.openConnection();

        if (!(conn instanceof HttpURLConnection))
          throw new IOException("Not an HTTP connection");

        try {
          HttpURLConnection httpConn = (HttpURLConnection) conn;
          httpConn.setAllowUserInteraction(false);
          httpConn.setInstanceFollowRedirects(true);
          httpConn.setRequestMethod("GET");
          httpConn.connect();

          response = httpConn.getResponseCode();
          if (response == HttpURLConnection.HTTP_OK) {
            in = httpConn.getInputStream();
            if(in == null)
              throw new IOException("No data");
          }
        } catch (Exception ex) {
          throw new IOException("Error connecting");
        }
        return in;
      }

Ответы [ 2 ]

8 голосов
/ 06 сентября 2010

Любой современный http lib поддерживает сжатие Gzip, это часть стандарта на века.

Но вам может потребоваться отправить заголовок: «Accept-Encoding: gzip»

Вы можете проверить, действительно ли это работает, используя сниффер в вашей локальной сети или на сервере. Вы также можете проверить заголовки ответа, но это потребует изменения кода (скорее всего, вам придется включить gzip на вашем веб-сервере).

Также вы можете скачать 10Мб файл пробелов. С включенным gzip было бы оооочень быстрее: -)

0 голосов
/ 01 ноября 2012

При использовании класса HttpURLConnection для работы с протоколом HTTP поле «Accept-Encoding: gzip» автоматически добавляется к исходящим запросам и обрабатывает соответствующий ответ.(см. документация )

...