网上很多HttpClient的学习源码都是3版本的,不过,既然现在HttpClient已经升级成Apache的顶级项目,自然想使用新版本。但是4版本完全是重新编写,而不能向下兼容。所以在学习调试源码时,利用的4的库,就不能直接运行3.1下的源码。

结合网上资源或自己实践,把3迁移4的一些资料收集整理于此,于己于人都会有帮助。
  1. jar包的变更,可以在此下载最新的jar包:http://hc.apache.org/downloads.cgi
  2. 把org.apache.commons.httpclient.*修改到import org.apache.http.*。具体变更哪些,就要看利用了HttpClient的哪些功能
    比如:

    Java代码  
    1. import org.apache.commons.httpclient.HttpClient;
    2. import org.apache.commons.httpclient.HttpStatus;
    3. import org.apache.commons.httpclient.HttpException;
    4. import org.apache.commons.httpclient.methods.GetMethod;
    5. import org.apache.commons.httpclient.ConnectTimeoutException;

    To

    Java代码  
    1. import org.apache.http.client.HttpClient;
    2. import org.apache.http.HttpStatus;
    3. import org.apache.http.HttpException;
    4. import org.apache.http.client.methods.HttpGet;
    5. import org.apache.http.conn.ConnectTimeoutException;
    6. import org.apache.http.HttpResponse;
    7. import org.apache.http.impl.client.DefaultHttpClient;
  3. 使用的各个HttpClient的功能的代码修改。这部分的整理,在使用过程中慢慢补全。本次先介绍Get方法的修改。
GET方法:
HttpClient3.1的代码:
HttpClient client = new HttpClient();
Java代码  
  1. GetMethod method = new GetMethod(url);
  2. int statusCode = client.executeMethod(method);
  3. if (statusCode == HttpStatus.SC_OK) {
  4. InputStream is = method.getResponseBodyAsStream();
  5. // do something with the input stream
  6. }
  7. method.releaseConnection();
To
HttpClient4.0的代码:
HttpClient client = new DefaultHttpClient();
Java代码  
  1. HttpGet method = new HttpGet(url);
  2. HttpResponse httpResponse = client.execute(method);
  3. int statusCode = httpResponse.getStatusLine().getStatusCode();
  4. if (statusCode == HttpStatus.SC_OK) {
  5. InputStream is = httpResponse.getEntity().getContent();
  6. // do something with the input stream
  7. }
哪位有更完整的资料,求分享!
参考:
http://blog.teamextension.com/migrating-from-httpclient-3-1-to-4-0-34

从HttpClient3迁移到HttpClient4相关推荐

  1. Meter应用中对于中文乱码的主要解决方法(转)

    SampleResult中的中文乱码解决方法 对jmeter.properties进行设置,从jmeter.properties配置文件中可以找到如下行: # The encoding to be u ...

  2. 大众点评支付渠道网关系统的实践之路

    业务的快速增长,要求系统在快速迭代的同时,保持很好的扩展性和可用性.其中,交易系统除了满足上述要求之外,还必须保持数据的强一致性.对系统开发人员而言,这既是机遇,也是挑战.本文主要梳理大众点评支付渠道 ...

  3. 支付渠道网关系统的实践之路

    http://www.tuicool.com/articles/rIbUzyj 业务的快速增长,要求系统在快速迭代的同时,保持很好的扩展性和可用性.其中,交易系统除了满足上述要求之外,还必须保持数据的 ...

  4. ElasticSearch03_Mapping字段映射、常用类型、数据迁移、ik分词器、自定义分词器

    文章目录 ①. Mapping字段映射概述 ②. 常用类型如下 - text.keyword ③. 映射中对时间类型详解 ④. ES的keyword的属性ignore_above ⑤. 映射的查看.创 ...

  5. 商城项目18_esMapping字段映射、常用类型、数据迁移、ik分词器、自定义分词器

    文章目录 ①. Mapping字段映射概述 ②. 常用类型如下 - text.keyword ③. 映射中对时间类型详解 ④. ES的keyword的属性ignore_above ⑤. 映射的查看.创 ...

  6. 实践练习四(必选):迁移 MySQL 数据到 OceanBase 集群

    OceanBase Docker安装体验:https://www.xmmup.com/oceanbase-dockeranzhuangtiyan.html 手动部署 OceanBase 单副本集群:h ...

  7. httpclient4 请一定设置超时时间

    httpclient4的设置方式和httpclient3有所不同,代码如下: HttpClient httpclient = new DefaultHttpClient(); httpclient.g ...

  8. 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  9. PyTorch迁移学习

    PyTorch迁移学习 实际中,基本没有人会从零开始(随机初始化)训练一个完整的卷积网络,因为相对于网络,很难得到一个足够大的数据集[网络很深, 需要足够大数据集].通常的做法是在一个很大的数据集上进 ...

  10. VGG16迁移学习实现

    VGG16迁移学习实现 本文讨论迁移学习,它是一个非常强大的深度学习技术,在不同领域有很多应用.动机很简单,可以打个比方来解释.假设想学习一种新的语言,比如西班牙语,那么从已经掌握的另一种语言(比如英 ...

最新文章

  1. ASP.NET夜话笔记06
  2. JTStackController
  3. 专栏 | 基于 Jupyter 的特征工程手册:特征选择(五)
  4. 【NOI2016】优秀的拆分【后缀数组】【ST表】【关键点】【调和级数复杂度】【差分】
  5. 部署mysql MHA集群
  6. HTC vive开发
  7. chrome插件“京东商品佣金助手”之京东云java web环境搭建(二)
  8. 小米选择了总是打开方式_小米更改默认程序 小米修改默认程序的打开方式
  9. 《UML系统分析与设计》习题答案
  10. 【C++设计模式】建造者模式
  11. 如何对自动驾驶技术进行全面检验?
  12. Bootstrap 导航/滑动门(nav)
  13. http post muti form
  14. 齐商银行计算机岗面试题,2018齐商银行社会招聘笔试(真题笔经)
  15. 香港虚拟主机与国内虚拟主机区别
  16. 【数字化】“网络效应”指南:13 种网络效应全解析,带你了解巨头成功的秘密
  17. Android面试资料整理
  18. sonic云真机通过linux系统接入苹果手机
  19. 【目标检测】目标检测中常见的评价指标
  20. 智能导航、车载影院、4A级游戏体验…GPU重新定义未来汽车

热门文章

  1. 试简述smtp通信的三个阶段的过程_POP3_SMTP_IMAP初步介绍
  2. 全方位了解8.0系统下的Handler
  3. 【毕业设计】 基于STM32的人体红外测温枪温度采集系统
  4. 红外通信红外编码—NEC协议
  5. 两相四线混合式步进电机用双H桥驱动电路之Multisim仿真及优化
  6. 操作系统原理(哈工大-李治军老师)实验三系统调用
  7. 香农编码译码c语言,实验三香农编码.doc
  8. ubuntu安装maya2011的方法
  9. java安装教程(eclipse)
  10. 主板检测卡c5_电脑主板检测卡代码大全