`
l_mai
  • 浏览: 69977 次
社区版块
存档分类
最新评论
  • waret: "&" "ctrl+z& ...
    2011-12-13
  • waret: 在软件设计的过程中中有一些基本的原则,其中有一条是少用继承,多 ...
    2011-11-14
  • waret: 1、序列化是干什么的?  简单说就是为了保存在内存中的各种对象 ...
    2011-11-15
  • waret: 吼吼~最小长度为5~
    2011-10-22

httpclient解析gzip网页

 
阅读更多
转自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();
分享到:
评论

相关推荐

    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构建,提供了更高级别...

    httpclient jar包.zip

    - **请求与响应模型**:定义了HTTP请求和响应的基本结构,使开发者能够轻松地构建和解析HTTP消息。 - **编码与解码**:提供了对HTTP消息头的编码和解码支持,以及对chunked编码和gzip压缩的支持。 **2. HTTPClient*...

    Android Asynchronous HTTPClient的实现和优化

    - 使用Gson或Jackson进行JSON解析,简化数据处理。 - 使用 Picasso 或 Glide 加载图片,它们能够优雅地处理网络图片加载。 - 使用 RxJava 结合 Retrofit,利用其强大的异步处理能力,实现复杂的网络请求逻辑。 总之...

    Android Async-HttpClient

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

    HttpClient 4.3.1必要jar包

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

    http网络请求与解析

    OkHttp使用了连接池,减少了建立和维护连接的开销,还支持HTTP/2协议和透明的GZIP压缩。OkHttp的API简洁易用,同时提供了异步和同步请求的接口。 二、数据解析方法 1. **JSON解析** JSON(JavaScript Object ...

    httpclient 4.4 jar包

    本文将详细解析HTTPClient 4.4 Jar包及其核心组件——CloseableHttpClient。 HTTPClient 4.4是Apache基金会开发的开源项目,旨在提供一个高效、可扩展的HTTP客户端接口。这个版本的发布,是为了应对不断变化的网络...

    windowsphone Gzip 压缩

    当服务器返回Gzip压缩的响应时,你可以使用HttpWebRequest或HttpClient类的相应方法来自动解压缩数据,如以下示例所示: ```csharp HttpWebRequest request = (HttpWebRequest)WebRequest.Create(...

    完整版网页访问模块.rar

    3. **网络库**:实现网页访问模块通常需要借助网络库,如Python的`requests`库,Java的`HttpURLConnection`或`Apache HttpClient`,JavaScript的`fetch`或`axios`。这些库提供了方便的接口,用于构造和发送HTTP请求...

    java抓取网页源码gzip-phproxy:PHP中的代理

    标题 "java抓取网页源码gzip-phproxy" 暗示了我们正在讨论一个使用Java进行Web抓取,并处理GZIP压缩的项目,而“PHP中的代理”则可能指的是使用PHP构建的代理服务器。这个项目可能涉及到如何通过Java从通过PHP代理...

    httpcomponents-client-4.1.1源码

    《HttpClient 4.1.1 源码解析与应用》 Apache HttpClient 是一个功能强大的开源HTTP客户端库,尤其在Java领域中广泛被用于实现HTTP通信。HttpClient 4.1.1 版本是该库的一个重要里程碑,它提供了一系列高效、灵活且...

    httpcomponents-core-4.4.4-bin.tar.gz

    HttpClient支持自动处理GZIP和其他压缩格式的请求和响应,减少了网络传输的数据量,提高了效率。开发者可以通过设置Accept-Encoding和Content-Encoding头来控制压缩行为。 八、国际化与字符编码 HttpClient对字符...

    安卓网络通信

    它们不仅提供了更丰富的功能,如异步请求、缓存策略、自动处理GZIP压缩等,而且使用起来更加简洁,性能也更好。 总之,Android中的网络通信是通过HTTP协议实现的,HttpClient曾是其中一种常见的实现方式,尤其适用...

    网络蜘蛛程序及java源码

    在描述中提到的Java源码,很可能是利用了Java的HTTP客户端库(如HttpURLConnection或Apache HttpClient)来发起HTTP请求,并解析返回的HTML或XML内容。对于压缩的网页,可能采用了gzip或deflate等压缩算法进行解码,...

    httpcomponents-client-4.2-alpha1-osgi-bin.tar.gz

    5. 依赖库:可能包含了HttpClient依赖的其他库,例如HTTP协议解析器或网络连接管理库。 在使用这个压缩包时,开发者通常会解压文件,将jar文件添加到项目的类路径中,然后根据提供的文档和示例代码来编写自己的HTTP...

Global site tag (gtag.js) - Google Analytics