其他分享
首页 > 其他分享> > Android:默认支持Gzip / Http?

Android:默认支持Gzip / Http?

作者:互联网

我正在使用下面显示的代码从我们的服务器获取数据,其中Gzip已打开.我的代码是否已经支持Gzip(也许这已经由android而不是我的java程序完成)或者我是否必须添加/更改smth.我如何检查它是否正在使用Gzip?对于我的opionion,下载有点慢.

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

解决方法:

任何现代的http lib都支持Gzip压缩,它是标准的一部分.

但您可能需要发送标题:“Accept-Encoding:gzip”

您可以在LAN或服务器上检查它是否真的可以使用嗅探器.您还可以检查响应标头,但这需要更改代码(最有可能的是,您必须在Web服务器上打开gzip).

此外,您可以下载10Mb的空间文件.随着gzip上它将更快waaaaay

标签:android,gzipstream
来源: https://codeday.me/bug/20190610/1212733.html