在我们的项目中,添加对gzip的支持,是为了加快数据在网络中的传输速度。
使用gzip,首先要设置请求消息头Accept-Encoding为gzip。这样,你将会得到一个响应,根据消息头Content-Encoding为gzip你可以知道,传输过来的数据是经过gzip压缩的。另外,消息头Content-Length会告诉你压缩后的数据长度。
用Java实现的gzip
GetMethod method = new GetMethod(url);//生成一个get方法实例
method.setQueryString(queryString);//设置查询字符串
method.addRequestHeader("Accept-Encoding", "gzip");//设置接受响应消息为gzip
HttpClient client = new HttpClient();//生成执行get方法的客户端实例
client.executeMethod(method);//执行get方法
InputStream in = method.getResponseBodyAsStream();//获取响应消息体
Header contentEncoding = method.getResponseHeader("Content-Encoding");//获取消息头Content-Encoding判断数据流是否gzip压缩过
if (contentEncoding != null && contentEncoding.getValue().equalsIgnoreCase("gzip")) {
GZIPInputStream gzipIn = new GZIPInputStream(in)