有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Android上的java DefaultHttpClient或HttpURLConnection

在构建旨在与移动设备交互的web服务时,我不确定在Android上实现HTTP请求的最佳方法是什么

我看到了这篇文章,最后说HttpURLConnection是进行HTTP请求的首选方法,我已经成功地使用了HttpsURLConnection

在搜索答案或阅读其他示例代码(甚至是最近的帖子)时,所有人似乎都使用了DefaultHttpClient,这似乎与谷歌的官方词汇背道而驰

我正在尽可能地证明我的安卓应用程序的未来性。考虑到这一点,HttpURLConnection是最佳选择吗


共 (3) 个答案

  1. # 1 楼答案

    DefaultHttpClient的抽象级别高于HttpUrlConnection。根据你的需要,任何一个都可以。如果不需要HttpUrlConnection的控件,请使用DefaultHttpClient

  2. # 2 楼答案

    如果您也支持2.2,最好的方法可能是同时使用DefaultHttpClient或HttpURLConnection

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

    原因:在Froyo之后,HttpURLConnection更稳定,而DefaultHttpClient在Froyo和更小版本中的bug更少

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