org.apache.http.client.HttpClient和org.apache.commons.httpclient.HttpClient的區別
最近看專案的程式碼,看到工程中有兩個jar包張的很像,一個是commons.httpclient-3.1.jar,一個是httpclient4.2.1.jar,很納悶,而且這兩個包裡都有HttpClient這個類,但是包名卻不一樣,然後就查找了一番資料,看下這兩個包到底是個什麼關係。
commons.httpclient-3.1.jar這個jar包是依賴了httpcore,commons-logging,commons-codec這三個jar包。而在commons-httpclient.jar包在使用過程中,需要依賴commons-logging.jar和commons-codec.jar,這個httpclient4.2.1.jar就相當於集合了以前的commons-httpclient,commons-logging,commons-codec,這三個jar包,減少了繁瑣的匯入jar包的過程,現在只需匯入一個httpclient.jar就可以使用了。
除此以外,在apache的官網上下載httpclient的jar包時,會發現它是在一個叫HttpComponent的專案下,這個HttpComponent是apache的頂級專案。而以前的commons的那三個包都是commons的專案下。在HttpComponent的網頁上,看到了這樣的文字: HttpComponents Client is a successor of and replacement for Commons HttpClient 3.x. Users of Commons HttpClient are strongly encouraged to upgrade.
也就是說commons下的commons-httpclient不在更新和維護了,用commons-httpclient的使用者也建議更新到httpclient這個包。