- 浏览: 69965 次
最新评论
-
waret:
"&" "ctrl+z& ...
2011-12-13 -
waret:
在软件设计的过程中中有一些基本的原则,其中有一条是少用继承,多 ...
2011-11-14 -
waret:
1、序列化是干什么的? 简单说就是为了保存在内存中的各种对象 ...
2011-11-15 -
waret:
吼吼~最小长度为5~
2011-10-22
转自http://www.cnblogs.com/yesun/archive/2008/10/31/1323432.html
请求时加上:getHC.setRequestHeader("Accept-Encoding","gzip, deflate");
解析时
String acceptEncoding = "";
if(getHC.getResponseHeader("Content-Encoding")!=null)
acceptEncoding = getHC.getResponseHeader("Content-Encoding").getValue();
StringBuffer sb =new StringBuffer();
log.debug("acceptEncoding:"+acceptEncoding);
if(acceptEncoding.toLowerCase().indexOf("gzip") > -1)
{
//建立gzip解压工作流
InputStream is = getHC.getResponseBodyAsStream();
GZIPInputStream gzin = new GZIPInputStream(is);
InputStreamReader isr = new InputStreamReader(gzin, charset); // 设置读取流的编码格式,自定义编码
java.io.BufferedReader br = new java.io.BufferedReader(isr);
String tempbf;
while((tempbf=br.readLine())!=null){
sb.append(tempbf);
sb.append("\r\n");
}
isr.close();
gzin.close();
}
else
{
InputStreamReader isr = new InputStreamReader(getHC.getResponseBodyAsStream(), charset); // 设置读取流的编码格式,自定义编码
java.io.BufferedReader br = new java.io.BufferedReader(isr);
String tempbf;
while((tempbf=br.readLine())!=null){
sb.append(tempbf);
sb.append("\r\n");
}
isr.close();
}
getHC.abort();
getHC.releaseConnection();
((SimpleHttpConnectionManager)httpClient.getHttpConnectionManager()).shutdown();
请求时加上:getHC.setRequestHeader("Accept-Encoding","gzip, deflate");
解析时
String acceptEncoding = "";
if(getHC.getResponseHeader("Content-Encoding")!=null)
acceptEncoding = getHC.getResponseHeader("Content-Encoding").getValue();
StringBuffer sb =new StringBuffer();
log.debug("acceptEncoding:"+acceptEncoding);
if(acceptEncoding.toLowerCase().indexOf("gzip") > -1)
{
//建立gzip解压工作流
InputStream is = getHC.getResponseBodyAsStream();
GZIPInputStream gzin = new GZIPInputStream(is);
InputStreamReader isr = new InputStreamReader(gzin, charset); // 设置读取流的编码格式,自定义编码
java.io.BufferedReader br = new java.io.BufferedReader(isr);
String tempbf;
while((tempbf=br.readLine())!=null){
sb.append(tempbf);
sb.append("\r\n");
}
isr.close();
gzin.close();
}
else
{
InputStreamReader isr = new InputStreamReader(getHC.getResponseBodyAsStream(), charset); // 设置读取流的编码格式,自定义编码
java.io.BufferedReader br = new java.io.BufferedReader(isr);
String tempbf;
while((tempbf=br.readLine())!=null){
sb.append(tempbf);
sb.append("\r\n");
}
isr.close();
}
getHC.abort();
getHC.releaseConnection();
((SimpleHttpConnectionManager)httpClient.getHttpConnectionManager()).shutdown();
发表评论
-
hadoop集群配置问题及思考
2013-04-07 14:28 752遇到的问题如下: 网上 ... -
Java再学习
2012-09-04 15:20 0面向对象中的对象,像现实生活中的“对象”或“物品”一样,具有一 ... -
近期总结
2012-08-16 21:10 6611.使用ubuntu系统更新源安装软件,有时就不好用的,比如m ... -
C中的printf
2012-07-22 14:34 720C中的printf计算参数时是从右到左压栈的 -
java string 全角半角转换
2012-07-03 16:38 1158/** * 全角空格为12288,半角空格为32 其他字符 ... -
程序员的美德
2012-06-25 16:22 712对数值敏感 实验的欲望 良好的数学功底 -
ubuntu 挂载虚拟机镜像
2012-06-23 14:54 6751.losetup /dev/loop10 /.....img ... -
如何高效的开会
2012-06-21 16:37 714转自知乎http://www.zhihu.com/questi ... -
ubuntu 命令行使用ftp上传文件
2012-06-19 09:08 25941.ftp 主机IP地址 2.输入用户名和密码 3.mput ... -
mysql数据库的导入和导出
2012-06-19 09:07 717导出: mysqldump 用户名 密码 数据库名 > ... -
mysql 数据库不支持中文编码问题
2012-06-18 22:00 1227mysql默认的编码为latin1.在插入中文时会出现乱码。解 ... -
mysql数据库编码修改
2012-06-18 16:31 855在linux下修改3个my.cnf的1个/etc/mysql/ ... -
HTTP cache-control 管理
2012-06-15 22:28 725cache-control设置为no cache,must-r ... -
mysql数据库建库、建表、插入命令
2012-06-15 22:26 1603建库 create database 库名; use 库名; ... -
java中string的函数split需要注意的地方
2012-06-14 09:37 768split在分隔字符串时,如果被分割的字符串是空字符串,即为“ ... -
近期学习整理
2012-06-13 14:37 6871.group by ...having...构建约束查询 2 ... -
LINUX bash中字符串单引号和双引号的区别
2012-06-04 09:59 981单引号中所有字符都被当做普通字符对待,所有环境变量、转义字符、 ... -
建立软链接和硬链接的命令
2012-06-02 09:08 1252软链接:ln -s 目录或文件 连接名 硬链接:ln -d 文 ... -
LINUX帮助手册区号
2012-05-31 15:20 629区号类别1常用命令2系统调用3库调用4特殊文件5文件格式和惯例 ... -
垃圾回收的分类和发展历史
2012-05-29 15:49 698垃圾回收主要有引用计数法、标记清理法、复制法、增量回收法等。垃 ...
相关推荐
- **压缩传输**:HttpClient支持GZIP压缩,可以减少网络传输的数据量。 - **缓存策略**:利用HttpCache可以缓存HTTP响应,减少不必要的网络请求。 8. **错误处理与调试** - **异常处理**:HttpClient可能会抛出...
10. **性能优化**:HttpClient4.2.1进行了多项性能优化,例如支持GZIP压缩、减少内存占用等,以提升整体性能。 综上所述,HttpClient4.2.1是一个强大且灵活的HTTP客户端库,适用于各种Java应用,尤其是需要大量HTTP...
9. **性能优化**:HttpClient有许多性能优化选项,例如禁用DNS缓存、使用线程安全的Cookie存储、开启GZIP压缩等。 10. **版本兼容性**:HttpClient有多个版本,从较早的3.x到较新的4.x和5.x。每个版本都有其特点和...
HTTP Core还支持传输编码(如chunked编码),内容编码(如gzip压缩)和HTTP连接的复用,这极大地提高了网络通信的效率。 **httpclient-4.2.5.jar** 是HttpClient的主要实现库,它基于HTTP Core构建,提供了更高级别...
- **请求与响应模型**:定义了HTTP请求和响应的基本结构,使开发者能够轻松地构建和解析HTTP消息。 - **编码与解码**:提供了对HTTP消息头的编码和解码支持,以及对chunked编码和gzip压缩的支持。 **2. HTTPClient*...
- 使用Gson或Jackson进行JSON解析,简化数据处理。 - 使用 Picasso 或 Glide 加载图片,它们能够优雅地处理网络图片加载。 - 使用 RxJava 结合 Retrofit,利用其强大的异步处理能力,实现复杂的网络请求逻辑。 总之...
- **支持gzip压缩**:自动解压服务器返回的gzip压缩内容,减少数据传输量。 - **缓存支持**:可以配置本地缓存策略,提高请求速度和减少网络流量。 - **支持Cookie**:管理Cookie,维持用户会话。 - **自定义请求头*...
9. **编码与解码**:HttpClient内置了对URL编码和解码的支持,以及对请求和响应的编码和解码处理,如GZIP压缩和解压缩。 10. **国际化与本地化**:HttpClient允许开发者指定请求和响应的字符集,以处理不同的语言...
OkHttp使用了连接池,减少了建立和维护连接的开销,还支持HTTP/2协议和透明的GZIP压缩。OkHttp的API简洁易用,同时提供了异步和同步请求的接口。 二、数据解析方法 1. **JSON解析** JSON(JavaScript Object ...
本文将详细解析HTTPClient 4.4 Jar包及其核心组件——CloseableHttpClient。 HTTPClient 4.4是Apache基金会开发的开源项目,旨在提供一个高效、可扩展的HTTP客户端接口。这个版本的发布,是为了应对不断变化的网络...
当服务器返回Gzip压缩的响应时,你可以使用HttpWebRequest或HttpClient类的相应方法来自动解压缩数据,如以下示例所示: ```csharp HttpWebRequest request = (HttpWebRequest)WebRequest.Create(...
3. **网络库**:实现网页访问模块通常需要借助网络库,如Python的`requests`库,Java的`HttpURLConnection`或`Apache HttpClient`,JavaScript的`fetch`或`axios`。这些库提供了方便的接口,用于构造和发送HTTP请求...
标题 "java抓取网页源码gzip-phproxy" 暗示了我们正在讨论一个使用Java进行Web抓取,并处理GZIP压缩的项目,而“PHP中的代理”则可能指的是使用PHP构建的代理服务器。这个项目可能涉及到如何通过Java从通过PHP代理...
《HttpClient 4.1.1 源码解析与应用》 Apache HttpClient 是一个功能强大的开源HTTP客户端库,尤其在Java领域中广泛被用于实现HTTP通信。HttpClient 4.1.1 版本是该库的一个重要里程碑,它提供了一系列高效、灵活且...
HttpClient支持自动处理GZIP和其他压缩格式的请求和响应,减少了网络传输的数据量,提高了效率。开发者可以通过设置Accept-Encoding和Content-Encoding头来控制压缩行为。 八、国际化与字符编码 HttpClient对字符...
它们不仅提供了更丰富的功能,如异步请求、缓存策略、自动处理GZIP压缩等,而且使用起来更加简洁,性能也更好。 总之,Android中的网络通信是通过HTTP协议实现的,HttpClient曾是其中一种常见的实现方式,尤其适用...
在描述中提到的Java源码,很可能是利用了Java的HTTP客户端库(如HttpURLConnection或Apache HttpClient)来发起HTTP请求,并解析返回的HTML或XML内容。对于压缩的网页,可能采用了gzip或deflate等压缩算法进行解码,...
5. 依赖库:可能包含了HttpClient依赖的其他库,例如HTTP协议解析器或网络连接管理库。 在使用这个压缩包时,开发者通常会解压文件,将jar文件添加到项目的类路径中,然后根据提供的文档和示例代码来编写自己的HTTP...