發(fā)布時(shí)間
2020年2月 httpclient從4.5直接升級(jí)了到5.0.
主要升級(jí)內(nèi)容
1、支持HTTP/2
2、新的異步HTTP接口
3、重構(gòu)reactor io模式,改進(jìn)基于reactor 的NIO,使得性能和拓展性更好。
4、不論服務(wù)端是阻塞還是異步的實(shí)現(xiàn),httpclient5均能支持服務(wù)端的過(guò)濾。例如橫切協(xié)議(cross-cutting protocol)的握手,和用戶(hù)認(rèn)證授權(quán)。
5、支持reactive流的API
6、使用嚴(yán)格連接有限保證的方式重構(gòu)連接池的實(shí)現(xiàn)。通過(guò)減少全局連接池的鎖,連接池在高并發(fā)下獲得更好的性能。
7、新的不嚴(yán)格連接有限保證連接池的實(shí)現(xiàn)。通過(guò)去除全局的連接池鎖獲得更高的性能。
8、更改包名
9、更改maven的groupId
包初探
從支持HHTP/2到新的連接池實(shí)現(xiàn)。從版本號(hào)的跳躍和包名和groupId的變更都顯示著這次的變動(dòng)非常之大。
那我們從包的角度來(lái)看看這次的變動(dòng)。
maven依賴(lài)
發(fā)現(xiàn)groupId多了一個(gè)client5,artifactId也多了一個(gè)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>
包名的變動(dòng)
import org.apache.http.impl.client.CloseableHttpClient;//原包名
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;//5.0 包名
后面的章節(jié)將圍繞httpclient5進(jìn)行詳細(xì)的說(shuō)明。