您的位置:首页 > 理论基础 > 计算机网络

android和httpClient

2016-03-09 10:25 246 查看
初,谷歌安卓新出,库中自带HttpClient 4.0测试预览版。为与安卓保持API同步,HTTPClient不敢大动大改。后来,HTTPClient 4.0渐趋成熟,apache欲使android跟进更新对应的库,android拒绝之。然旧库bug丛生,瑕疵遍地。故今apache新出一个HTTPClient for android。

你说,既然android自带的不好,为啥不直接导入apache的呢?因为包名是一样的,库冲突。不是不能解决,也能,麻烦。从apache下载最新的httpclient源码,把每个源文件包名改了,改成跟android不冲突的。然后打包成jar文件,然后导入到android工程的lib里。

链接:http://hc.apache.org/httpcomponents-client-4.3.x/android-port.html

现在,android 6.0已经移除了httpClient,于是世界又恢复了平静。我们可以从apache下载httpClient,然后导入到lib中,不用改名了。

loopj.android.AsyncHttpClient是James Smith基于httpClient封装的用于android的网络请求包,从1.4.9版开始不再自带httpClient,他封装的并非是apache的httpClient,而是cz.msebra.android.httpclient。

android-async-http-1.4.9版本去除了httpclient的东西,所以会出现Header[] headers找不到的错误,这里分享下解决办法:

我们先看看官方:https://github.com/loopj/android-async-http/blob/master/library/build.gradle#L27

dependencies {
compile 'cz.msebera.android:httpclient:4.3.6'
}

我们也可以这样写,build就可以解决了。

如果网络不好,就下载jar包:http://mvnrepository.com/artifact/cz.msebera.android/httpclient/4.3.6

最后,如果你使用了1.4.9版本,出现连接不上服务器的问题,我给大家的建议是果断放弃1.4.9版本(不知道是不是bug),使用1.4.8版本,不要再浪费时间了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: