`
chenghuixy
  • 浏览: 21254 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

httpclient 读取gzip网页

阅读更多

首先创建一个client对象:

DefaultHttpClient httpclient = new DefaultHttpClient();

 然后为这个client添加一个request拦截器和response拦截器

		httpclient.addRequestInterceptor(new HttpRequestInterceptor() {
			public void process(final HttpRequest request,
					final HttpContext context) throws HttpException,
					IOException {
				if (!request.containsHeader("Accept-Encoding")) {
					request.addHeader("Accept-Encoding", "gzip");
				}
			}

		});

		httpclient.addResponseInterceptor(new HttpResponseInterceptor() {
			public void process(final HttpResponse response,
					final HttpContext context) throws HttpException,
					IOException {
				HttpEntity entity = response.getEntity();
				Header ceheader = entity.getContentEncoding();
				if (ceheader != null) {
					HeaderElement[] codecs = ceheader.getElements();
					for (int i = 0; i < codecs.length; i++) {
						if (codecs[i].getName().equalsIgnoreCase("gzip")) {
							response.setEntity(new GzipDecompressingEntity(
									response.getEntity()));
							return;
						}
					}
				}
			}

		});
 然后访问会的内容就能正常显示了
分享到:
评论

相关推荐

    Android例子源码使用HttpClient获取网页html源代码

    在Android开发中,有时我们需要从网络上获取网页的HTML源代码,这通常涉及到网络编程。本例子源码展示了如何利用Apache HttpClient库来实现这一功能,同时也对比了另一种常见的网络访问方式——URLConnection。以下...

    HttpClient

    2. 发送HTTP请求,例如GET请求获取网页内容,POST请求提交表单数据。 3. 处理服务器的响应,包括读取响应状态码、头部信息和响应体。 4. 如果响应体被GZIP压缩,使用GZipHelper类或方法进行解压缩。 5. 错误处理和...

    apache httpclient jar包

    - **HttpEntity**:响应体的抽象,可以通过HttpEntity.getContentType()获取MIME类型,HttpEntity.getContent()读取内容。 3. **请求和响应头**: - 可以通过HttpUriRequest.setHeader()和HttpResponse....

    Delphi的GZIP解压示例源代码(亲测可用)

    通常,这会涉及到读取GZIP文件,调用解压缩函数,将解压缩的数据写入新的文件,以及处理可能出现的错误。 通过阅读和理解源代码,你可以学习到如何处理二进制数据流,如何使用Delphi的内存流类(如TMemoryStream)...

    httpClient帮助文档

    - **压缩传输**:HttpClient支持GZIP压缩,可以减少网络传输的数据量。 - **缓存策略**:利用HttpCache可以缓存HTTP响应,减少不必要的网络请求。 8. **错误处理与调试** - **异常处理**:HttpClient可能会抛出...

    HttpClient4.2.1

    10. **性能优化**:HttpClient4.2.1进行了多项性能优化,例如支持GZIP压缩、减少内存占用等,以提升整体性能。 综上所述,HttpClient4.2.1是一个强大且灵活的HTTP客户端库,适用于各种Java应用,尤其是需要大量HTTP...

    HttpClient_Demo

    9. **性能优化**:HttpClient有许多性能优化选项,例如禁用DNS缓存、使用线程安全的Cookie存储、开启GZIP压缩等。 10. **版本兼容性**:HttpClient有多个版本,从较早的3.x到较新的4.x和5.x。每个版本都有其特点和...

    httpcore-4.2.4,httpclient-4.2.5,httpclient-cache-4.2.5,httpmime-4.2.5的jar包下载

    HTTP Core还支持传输编码(如chunked编码),内容编码(如gzip压缩)和HTTP连接的复用,这极大地提高了网络通信的效率。 **httpclient-4.2.5.jar** 是HttpClient的主要实现库,它基于HTTP Core构建,提供了更高级别...

    WebApi系列-通过HttpClient来调用WebApi接口.doc

    ### WebApi系列-通过HttpClient来调用WebApi接口 #### 一、概述 在现代Web开发中,Web API已经成为一种非常流行的模式,用于提供服务端与客户端之间的数据交互。随着.NET Framework以及.NET Core的发展,微软提供...

    httpclient

    6. **处理响应**:获取`HttpResponse`对象,读取响应状态码、头部信息和响应体内容。 7. **释放资源**:在完成请求处理后,记得关闭连接和释放HttpClient资源。 学习HttpClient库可以帮助开发者更有效地编写网络...

    个人练习排序、【http、OKhttp、HttpClient获取网络数据】、获取相册或自拍图片包括截图等操作

    OkHttp的特点包括连接池、响应缓存、自动处理重定向和GZIP压缩等,这些特性使得它在性能和速度上优于标准的HttpURLConnection。 4. **HttpClient**: HttpClient是Apache提供的一个Java库,用于执行HTTP请求。虽然...

    Android Asynchronous HTTPClient的实现和优化

    在Android开发中,网络通信是应用的核心功能之一,而`Android Asynchronous HTTPClient`(也称为AsyncHttpClient)是一个流行的库,用于实现异步HTTP请求,它使得开发者可以在不阻塞主线程的情况下执行网络操作,...

    Android Async-HttpClient

    - **支持gzip压缩**:自动解压服务器返回的gzip压缩内容,减少数据传输量。 - **缓存支持**:可以配置本地缓存策略,提高请求速度和减少网络流量。 - **支持Cookie**:管理Cookie,维持用户会话。 - **自定义请求头*...

    HttpClient 4.3.1必要jar包

    9. **编码与解码**:HttpClient内置了对URL编码和解码的支持,以及对请求和响应的编码和解码处理,如GZIP压缩和解压缩。 10. **国际化与本地化**:HttpClient允许开发者指定请求和响应的字符集,以处理不同的语言...

    HttpClient入门教程

    通常,我们可以使用`java.net.URL`类来表示一个网址,然后通过`openStream()`方法获取网页内容的输入流。例如: ```java try { String urlString = "http://localhost:8080/cms/"; URL url = new URL(urlString);...

    HttpClient使用

    - 使用GZIP压缩减小传输数据量。 在提供的标签"源码"和"工具"中,可能意味着文章还讨论了HttpClient的内部工作原理,或者提供了使用HttpClient与其他工具集成的示例。在lib文件夹中,可能包含了用于测试或演示...

    httpclient详细介绍以及相关包和例子

    此外,HTTPClient库还提供了对Cookie、HTTP缓存、GZIP压缩、多部分上传等功能的支持。在处理大量HTTP请求时,理解并熟练使用HTTPClient可以帮助你编写高效、健壮的代码。为了更好地利用这个库,建议阅读官方文档和...

    HTTPclient jar包

    HTTPclient支持自定义编码解码器,如GZIP压缩,这在处理大体积数据或者特定编码格式时非常有用。 10. **与其他框架的集成**: HTTPclient可以轻松地与Spring、Apache Camel等框架集成,为复杂的企业级应用提供...

Global site tag (gtag.js) - Google Analytics