网上很多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;
    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.HttpStatus;
    import org.apache.commons.httpclient.HttpException;
    import org.apache.commons.httpclient.methods.GetMethod;
    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;
    import org.apache.http.client.HttpClient;
    import org.apache.http.HttpStatus;
    import org.apache.http.HttpException;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.conn.ConnectTimeoutException;
    import org.apache.http.HttpResponse;
    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();
GetMethod method = new GetMethod(url);
int statusCode = client.executeMethod(method);
if (statusCode == HttpStatus.SC_OK) {InputStream is = method.getResponseBodyAsStream();// do something with the input stream
}
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. }
HttpGet method = new HttpGet(url);
HttpResponse httpResponse = client.execute(method);
int statusCode = httpResponse.getStatusLine().getStatusCode();
if (statusCode == HttpStatus.SC_OK) {InputStream is = httpResponse.getEntity().getContent();// do something with the input stream
}
哪位有更完整的资料,求分享!
参考:
http://blog.teamextension.com/migrating-from-httpclient-3-1-to-4-0-34

【学习】从HttpClient3迁移到HttpClient4相关推荐

  1. 吴恩达深度学习笔记(67)-迁移学习(Transfer learning)

    https://www.toutiao.com/a6644868806923518471/ 2019-01-11 07:36:41 迁移学习(Transfer learning) 深度学习中,最强大的 ...

  2. 机器不学习:初识迁移学习

    机器不学习 jqbxx.com-专注机器学习,深度学习,自然语言处理,大数据,个性化推荐,搜索算法,知识图谱 虽然我不是专门研究迁移学习的,但是作为一个AI研究者,就如题图吴老师所说,迁移学习极为重要 ...

  3. 如何使用小数据集对大模型进行微调(迁移学习)-微迁移

    1.首先使用小数据集训练大模型一定要有大模型的优化器停止状态参数(没有的话尽量将学习率设置的小点),和停止时候权重参数,也就是要有预训模型 2,最好不要冻结参数,冻结虽然会节约时间但是未必能达到好的效 ...

  4. 迁移学习_Java 10迁移建议

    迁移学习 你好,再一次到另一个热点. 我的名字是Java Champions平台工程师兼DevOps专家Peter Pilgrim. 如您所知,Java 9引入了模块系统. 您可能正在将服务迁移到JD ...

  5. 【深度学习系列】迁移学习Transfer Learning

    在前面的文章中,我们通常是拿到一个任务,譬如图像分类.识别等,搜集好数据后就开始直接用模型进行训练,但是现实情况中,由于设备的局限性.时间的紧迫性等导致我们无法从头开始训练,迭代一两百万次来收敛模型, ...

  6. 目标检测迁移学习_使用迁移学习检测疟疾

    目标检测迁移学习 Written by Francesco Palma and Isaac Rosat 由Francesco Palma和Isaac Rosat撰写 In this article, ...

  7. 整理学习之深度迁移学习

    迁移学习(Transfer Learning)通俗来讲就是学会举一反三的能力,通过运用已有的知识来学习新的知识,其核心是找到已有知识和新知识之间的相似性,通过这种相似性的迁移达到迁移学习的目的.世间万 ...

  8. 元学习——通过知识迁移的图小样本学习(Graph Few-shot Learning via Knowledge Transfer)

    文献记录-通过知识迁移的图小样本学习 1 摘要 对于图的半监督学习已经提出了很多的研究方法.类似于GNN类方法,通过聚合节点周围节点的信息来更新节点的表示,已经取得了非常不错的效果.但是,大多数的GN ...

  9. 【学习笔记】迁移学习分类

    什么是迁移学习 通俗来讲,就是运用已有的知识来学习新的知识,核心是找到已有知识和新知识之间的相似性,用成语来说就是举一反三.由于直接对目标域从头开始学习成本太高,我们故而转向运用已有的相关知识来辅助尽 ...

  10. 毕设 深度学习图像风格迁移

    文章目录 0 简介 1 VGG网络 2 风格迁移 3 内容损失 4 风格损失 5 主代码实现 6 迁移模型实现 7 效果展示 8 最后 0 简介 今天学长向大家介绍一个机器视觉项目 基于深度学习卷积神 ...

最新文章

  1. BZOJ.1558.[JSOI2009]等差数列(线段树 差分)
  2. httpd开启status模块_开启Apache Server Status
  3. Java中高效判断数组中是否包含某个元素
  4. 离群点、异常点检测及Python实现(正态分布3∂,Z-score 异常值检测,基于MAD的Z-score 异常值检测,杠杆值点、DFFITS值、SR学生化残差、cook距离和covratio值)
  5. linux 会不会受到永恒之蓝漏洞,永恒之蓝漏洞复现(ms17-010)
  6. 这是我看过最棒的MEMS介绍文章,从原理制造到应用全讲透(强推)
  7. 【vtk实例】平面切割
  8. js根据年份计算总周数并获取每周的日期范围
  9. 我的日程安排系列问题(区间重叠问题)
  10. Excel为图表指定横向坐标数据
  11. 吉软-Java57-第一次作业
  12. API集成测试问题2:Expected status code 200 but received 500. Failed asserting that false is true.
  13. 视频搬砖项目【一个技术员是如何轻松利用视频搬运项目做到日入2000+】
  14. ios小米手环6最新固件获取auth_key更换第三方表盘
  15. 三个或多个蛋白质结构的比对
  16. 静态变量(static variable)
  17. LeetCode-动态规划-518-零钱兑换II
  18. Calendar中 DAY_OF_MONTH,  DAY_OF_YEAR,  DATE 的区别
  19. (1)课程简介-CS231A:Computer Vision, From 3D Reconstruction to Recognition
  20. Maven打包出现错误:“There aretest failures”

热门文章

  1. 降采样 matlab,改进型64倍降采样数字抽取滤波器的设计与仿真分析
  2. FPGA简单实现数据过采样
  3. 用于遥感图像语义分割和单视图高度估计的编码器-双解码器IGARSS2019
  4. 国产艾莫讯仿西门子S7-200PLC控制步进电机程序
  5. 无线增益多路负反馈带通滤波器的研究
  6. 车载android播放器,KX万能播放器
  7. 香农编码、哈夫曼编码、费诺编码的特点、优缺点及应用
  8. 工科数学分析 MA_12 Vectors and the Geometry of Space (下篇)
  9. 基于java的局域网端口扫描工具
  10. struts2拦截器实现登录限制