2012-02-17 63 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

相關問題