【学习】从HttpClient3迁移到HttpClient4

网上很多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的哪些功能
    比如:
    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
    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();
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();
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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值