欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > JAVA HttpUrlConnection 使用 GZIP 编码压缩

JAVA HttpUrlConnection 使用 GZIP 编码压缩

2024/10/25 4:18:39 来源:https://blog.csdn.net/IUPRG/article/details/94456639  浏览:    关键词:JAVA HttpUrlConnection 使用 GZIP 编码压缩

By default, when you make a request to URL, the response is not compressed.

默认情况下,当你在URL创建一个request 请求,response响应是不压缩的。

比如,代码:

import java.io.InputStreamReader;
import java.io.Reader;
import java.net.HttpURLConnection;
import java.net.URL;public class HttpConnect {public static void main(String[] args) throws Exception {URL url = new URL("http://www.rgagnon.com/howto.html");HttpURLConnection con = (HttpURLConnection) url.openConnection();// con.setRequestProperty("Accept-Encoding", "gzip");System.out.println("Length : " + con.getContentLength());Reader reader = new InputStreamReader(con.getInputStream());while (true) {int ch = reader.read();if (ch==-1) {break;}System.out.print((char)ch);}}
}

From the response, we see that the length is 21740 bytes. 

从响应内容,我们看到长度是21740字节。

Length : 21740
<!DOCTYPE HTML>
<HTML><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><LINK REL="SHORTCUT ICON" HREF="http://www.rgagnon.com/favicon.ico"><META NAME="description"Content="Real's JAVA JAVASCRIPT WSH and PowerBuilder How-to pages with useful code snippets"><META NAME="keywords"Content="java,javascript,wsh,vbscript,how-to,powerbuilder">
...

By setting the Request Header "Accept" to "gzip", we are telling to the server that we want the response to be compressed if possible with the GZIP compression scheme. If it's not supported by the server then the response will be sent as plain text.

通过设置request header 的属性“Accept” 为“gzip”,我们告诉服务器在可能Gzip压缩的情况下我们想要服务器压缩响应。如果服务器不支持压缩应当以纯文本发送响应。

import java.io.InputStreamReader;
import java.io.Reader;
import java.net.HttpURLConnection;
import java.net.URL;public class HttpConnect {public static void main(String[] args) throws Exception {URL url = new URL("http://www.rgagnon.com/howto.html");HttpURLConnection con = (HttpURLConnection) url.openConnection();con.setRequestProperty("Accept-Encoding", "gzip");System.out.println("Length : " + con.getContentLength());Reader reader = new InputStreamReader(con.getInputStream());while (true) {int ch = reader.read();if (ch==-1) {break;}System.out.print((char)ch);}}
}

Now the response length is 4865 but the content is not readable because we need to uncompress it!

现在响应长度是4865,但是内容不可读因为我们需要jie压缩!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com