標籤:android httpclient apache的heepclient android內建httpclient
最近想理一下網路那塊,突然發現了Android內建了Httplicent,可是我們平時開發也常用第三方的HttpClient(apache官方的)。由於以前看一些前輩這麼用,自己也就跟著用了,但是根本就沒考慮這些事。可是最近想整理一下,結果又看到了這個問題。我不知道你們會不會有和我一樣的疑問呢?同時apache的東西,為什麼Android內建一份,apache自己也有一份呢?並且邊個類庫是不一樣的。
我上網查了一下結果提到的不詳細,帶著這個問題我就沒心情往下整理了。所以一心想弄其來龍去脈,他們哪裡不一樣。為什麼Android上少了那麼多的方法類。
開始看Android的文檔,沒法現什麼,只是說在Api22中棄用了它。暫且不說棄用的事。關於HttpClient的沒有較多的介紹。所以我就轉向apache的官方。查看Apache HttpComponents 裡麵包含了好幾個塊。我順著找找到了HttpComponents Client這一塊
這是是介紹apache HttpClient的那塊其中這一塊中有一部分關於part for Android
點進去,結果什麼都清楚了。
上面Background介紹,在Google Android1.0版本的時候,把apache 4.0版本整合進去了。當時4.0也算是一個比較成熟的項目了,Apache官方開始認為Android隨著升級會把HttpClient也會升級整合。可是Google卻沒有這麼做。所以慢慢的Android就停止維護開發Android裡面的HttpClient,而Apache官方的也慢慢的隨著維護升級也變成了一個分支。最後Android不維護Android內建的HttpClient並同時拒絕升級apache官方的HttpClient,理由是不相容。所以Apache 光放就推出了針對Android的HttpClicent。現在是相容Android裡的舊版本Api,防止有衝突。以前可能我們用的時候匯入,會發生衝突,到 apache HttpClient 4.3,已經開始相容Android裡的。
以前使用3.X 的commons的版本的使用者,apache也強烈建議升級為最新的。
所以,Android api 22中提到的廢棄Android HttpClient 我覺得一部分原因也可能是因為這個。Android廢棄HttpClient與apache官方提供的HttpClient沒有任何關係。我們照樣可以繼續使用第三方的HttpClient(apache)。
Android Network --------------關於Android內建的org.apache.http和apache官方的(第三方的)HttpClient的問題