Google官方在API級(jí)別22的時(shí)候已經(jīng)棄用HttpClient,在API級(jí)別23,更是將Apache HTTP Client給剔除了。
來看看官方的解釋:

大概的意思是:Android的6.0版本中刪除了的Apache HTTP客戶端支持。如果您的應(yīng)用程序使用此客戶端和目標(biāo)的Andr??oid 2.3(API等級(jí)9)或更高,使用HttpURLConnection類代替。此API是更有效的,因?yàn)樗鼫p少了通過透明壓縮和響應(yīng)緩存網(wǎng)絡(luò)的使用,并減少功耗。要繼續(xù)使用的Apache HTTP API,您必須在您的build.gradle文件中添加下面的一句話:
android{
useLibrary 'org.apache.http.legacy'
}
以下是本人遷移項(xiàng)目到AS使用Apache HTTP Client遇到的問題及解決方法:
Android Studio(以下均稱AS)已越來越多人用了,已成為Android開發(fā)者的首選開發(fā)工具,Google在2015年也宣布AS將取代Eclipse(以下均稱EC);
基于以上原因,本人需要將在EC中寫的項(xiàng)目遷移到AS上來,本人已經(jīng)將AS升級(jí)到了2.0;EC中的項(xiàng)目想導(dǎo)入AS中,其實(shí)也很簡單,我們看圖說話,這樣簡單明了

點(diǎn)擊 圖-1? 箭頭上的項(xiàng),導(dǎo)入你在EC中的項(xiàng)目.然后一步一步點(diǎn)擊下去直到Finish就好了,它自己會(huì)幫你構(gòu)建;
本人將EC中的項(xiàng)目導(dǎo)入AS中,也會(huì)有一些小錯(cuò)誤,在AS中的代碼是非常嚴(yán)格的 ?比如.9圖(我們稱之為"九妹"),有些九妹并不是真的九妹,AS是可以檢測的出來的,只要把你錯(cuò)的九妹改成真正的九妹就不會(huì)報(bào)錯(cuò)了;不多說了;
本人的EC項(xiàng)目中使用了Apache的Http API,導(dǎo)入AS中報(bào)錯(cuò)了,看圖

解決方法:
一、在Android官方的解決辦法是
1.在你的build.gradle中添加
android{
useLibrary 'org.apache.http.legacy'
}
2.同步你的項(xiàng)目(這個(gè)使用AS的大神們應(yīng)該懂的吧,就不說了).
我們就實(shí)踐一下看看有木有效果:
a.添加 useLibrary 'org.apache.http.legacy'

b.同步項(xiàng)目

c.在報(bào)錯(cuò)的地方引入包Apache的包

在圖-5中我們看見是可以引入包的,但是我們看見的是劃了一條橫線,這表明在Android 6.0中已過時(shí).提示過時(shí)就過時(shí)吧,將就用吧。
二、解決Apache包不存在的方法二
1.在build.grade中添加
dependencies{
compile'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2'
}
2.同步項(xiàng)目
在看看效果:
a.

b.同步項(xiàng)目
c.看效果

看,這次我們發(fā)現(xiàn)沒有劃橫線了;
其實(shí)哪種方法都可以的,
還是建議Android開發(fā)者使用OkHttp或者URLConnection代替Apache http;
又到二十四點(diǎn)了,又是一天,記錄工作中的點(diǎn)點(diǎn)滴滴。祝各位晚安,做個(gè)好夢(mèng)!

E