发布时间
2020年2月 httpclient从4.5直接升级了到5.0.
主要升级内容
1、支持HTTP/2
2、新的异步HTTP接口
3、重构reactor io模式,改进基于reactor 的NIO,使得性能和拓展性更好。
4、不论服务端是阻塞还是异步的实现,httpclient5均能支持服务端的过滤。例如横切协议(cross-cutting protocol)的握手,和用户认证授权。
5、支持reactive流的API
6、使用严格连接有限保证的方式重构连接池的实现。通过减少全局连接池的锁,连接池在高并发下获得更好的性能。
7、新的不严格连接有限保证连接池的实现。通过去除全局的连接池锁获得更高的性能。
8、更改包名
9、更改maven的groupId
包初探
从支持HHTP/2到新的连接池实现。从版本号的跳跃和包名和groupId的变更都显示着这次的变动非常之大。
那我们从包的角度来看看这次的变动。
maven依赖
发现groupId多了一个client5,artifactId也多了一个5,version从4变成了5
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.12</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents.client5</groupId>
<artifactId>httpclient5</artifactId>
<version>5.0.1</version>
</dependency>
包名的变动
import org.apache.http.impl.client.CloseableHttpClient;//原包名
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;//5.0 包名
后面的章节将围绕httpclient5进行详细的说明。