2012-02-17 76 views
9

在构建用于与移动设备交互的Web服务中,我不确定在Android上实现HTTP请求的最佳方法。Android上的DefaultHttpClient或HttpURLConnection

我遇到了这篇文章,其中说明HttpURLConnection是制作HTTP请求的首选方法,并且我已经成功使用了HttpsURLConnection

当搜索答案或阅读其他示例代码(甚至相当近期的帖子)时,似乎都使用DefaultHttpClient,这似乎违背了谷歌的官方词汇。

我试图尽可能地验证我的Android应用程序。有鉴于此,HttpURLConnection是最佳选择?

回答

3

DefaultHttpClient处于比HttpUrlConnection更高的抽象水平。根据您的需求,任何一个都应该没问题。如果您不需要控制HttpUrlConnection,请使用DefaultHttpClient

13

如果要支持2.2以及,最好的办法可能是利用两个DefaultHttpClient或HttpURLConnection的

if (Integer.parseInt(Build.VERSION.SDK) <= Build.VERSION_CODES.FROYO) { 
     // Use DefaultHttpClient here 
    } 
else{ 
     //use HttpURLConnection 
} 

原因:HttpURLConnection的是更加稳定后的Froyo而DefaultHttpClient为Froyo的和较小版本的bug更少。

Ref:http://developer.android.com/reference/org/apache/http/impl/client/DefaultHttpClient.html Android包含两个HTTP客户端:HttpURLConnection和Apache HTTP Client。两者都支持HTTPS,流式上传和下载,可配置超时,IPv6和连接池。 Apache HTTP客户端在Android 2.2(Froyo)和更早版本中具有较少的错误。对于Android 2.3(姜饼)和更高版本,HttpURLConnection是最佳选择。其简单的API和小尺寸使其非常适合Android。透明压缩和响应缓存减少网络使用,提高速度并节省电池。查看Android开发者博客,了解两个HTTP客户端的比较。

+0

感谢您的这个真棒解释! – 2014-04-26 21:49:58

相关问题