我在我当前的应用中使用DefaultHttpClient
。
我读过这篇文章,其中指出DefaultHttpClient
已被弃用:http://developer.android.com/reference/org/apache/http/impl/client/DefaultHttpClient.html
它指向这个网站:http://android-developers.blogspot.com/2011/09/androids-http-clients.html?m=1这个太旧了,写于2011年。
我将使用DefaultHttpClient
删除并按照本文使用Apache的HttpClient
:http://loopj.com/android-async-http/
我想知道在2015年针对Android API 19及更高版本的编程时,这是否是正确的选择。
答案 0 :(得分:9)
好的,我等了一个星期,所以做了很多研究。我想我找到了答案。
我强烈建议初学者甚至专业的Android程序员知道存在非常有用的库Retrofit:
http://square.github.io/retrofit/
上有大量文件堆栈溢出还提供了几乎所有需要通过网络联系远程REST服务的示例。
最好停止使用HttpURLConnection和AsyncTask。改造速度更快,并支持开箱即用的所有故障情况。
答案 1 :(得分:5)
除了链接到该博客之外,docs建议您使用自API级别1以来一直存在的URL.openConnection。
答案 2 :(得分:3)
您应该切换到HttpURLConnection。它需要稍多的代码,但不是那么多。 在SDK 22中,他们已经弃用了HttpClient,即使您以SDK 19为目标,在使用22编译时也会收到警告。
只是推测(现在找不到任何来源),但我想他们不会在已弃用的库中做任何修复,因此任何安全问题或错误都将保持不固定。
答案 3 :(得分:2)
选项1:Volley
Android 1.6(API等级4)或更高版本
排球的好处:
选项2:OkHttp
OkHttp支持Android 2.3及更高版本。对于Java,最低要求是1.7。
其文档中列出的一些功能:
答案 4 :(得分:0)
是时候切换到OkHttp,它可以有效地处理HTTP并使你的东西加载更快并节省带宽。它支持同步阻塞调用和带回调的异步调用。
OkHttp支持Android 2.3及更高版本。
将以下依赖项添加到您的Android项目中。
compile 'com.squareup.okhttp:okhttp:2.4.0'
答案 5 :(得分:0)
根据Google Docs:
要继续使用Apache HTTP客户端,面向Android 9及更高版本的应用可以将以下内容添加到其AndroidManifest.xml中:
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
这对我有用-SDK级别28。