`

android 中对apache httpclient及httpurlconnection的选择

阅读更多
  在官方blog中,android工程师谈到了如何去选择apache client和httpurlconnection的问题:
  原文见http://android-developers.blogspot.com/2011/09/androids-http-clients.html
这里小结下几点。

1) apache httpclient比较稳定点,少BUG,但由于API的关系,扩展改造麻烦点,
所以android team现在不鸟这东西了基本

2) httpurlconnection比较轻便,灵活,易于扩展,在2。2前有个BUG,
见http://code.google.com/p/android/issues/detail?id=2939
  可以通过如下代码去解决:
 
private void disableConnectionReuseIfNecessary() {  
  // HTTP connection reuse which was buggy pre-froyo   
 if (Integer.parseInt(Build.VERSION.SDK) < Build.VERSION_CODES.FROYO) {        System.setProperty("http.keepAlive", "false");   
 }
}

3) 在Gingerbread中,httpurlconnection会增加对压缩报文头的处理,服务端可以用
GZIP,详细见:
  http://developer.android.com/reference/java/net/HttpURLConnection.html

4) 对HTTPURLCONECTION中,在3。0后以及4。0中都进行了改善,比如对HTTPS的支持,
在4。0中,还增加了对缓存的支持呢!比如下面的代码:
private void enableHttpResponseCache() 
{  
  try {
        long httpCacheSize = 10 * 1024 * 1024; // 10 MiB    
    File httpCacheDir = new File(getCacheDir(), "http");    
    Class.forName("android.net.http.HttpResponseCache").getMethod("install", File.class, long.class.invoke(null, httpCacheDir, httpCacheSize);   
 } 
catch 
(Exception httpResponseCacheNotAvailable) {  
  }
}



  最后的建议,Gingerbread后的版本,都建议用httpurlconnection,获得更高的性能
5
1
分享到:
评论

相关推荐

    apache httpclient源代码,eclipse查看源码

    - 在Android中使用HttpClient需要注意版本兼容性,因为从API 22开始,HttpClient已被弃用,建议使用`HttpURLConnection`。 - 但HttpClient的稳定性和灵活性使其在某些场景下仍然是首选,特别是在处理复杂的HTTP...

    android 联网请求的两种方式HttpURLConnection和HttpClient

    总的来说,HttpURLConnection更现代,更适合Android,而HttpClient虽然被弃用,但在某些情况下仍然适用。选择哪种方式取决于项目需求和个人偏好。理解这两种方法的工作原理以及如何处理GET和POST请求,是每个Android...

    Android使用HttpClient和HttpsUrlConnection两种方式访问https网站

    在Android中,我们可以使用`AndroidHttpClient`,它是`HttpClient`的一个优化版本,更适合Android平台。 #### 1.1 配置HttpClient访问HTTPS(不验证证书) ```java // 创建HttpClient实例 HttpClient httpClient =...

    android HttpClient

    1. Android API版本变化:在Android API 23及以上,`HttpClient`被弃用,推荐使用`HttpURLConnection`。但在较低版本中,`HttpClient`仍然是一个可靠的选项,尤其是在处理文件上传等复杂场景时。 2. 连接池与线程...

    Android例子源码使用HttpClient获取网页html源代码

    总结来说,虽然HttpClient在早期Android版本中更常见,但随着版本的更新,HttpURLConnection成为了首选。两者都可以用来获取网页HTML源代码,但在API Level 21及更高版本中,HttpURLConnection具有更好的性能和更低...

    Android的HttpClient开发实例

    4. Android API 22及之后,`HttpClient`被标记为过时,推荐使用`HttpURLConnection`。但在一些旧项目或对性能有特定要求的情况下,仍有人选择继续使用`HttpClient`。 最后,`教程重要说明.txt`可能是本实例的详细...

    Android httpclient httpmine4j

    在Android开发中,进行HTTP通信是一项常见的任务,而Apache HttpClient是一个流行的选择,它提供了丰富的功能,包括文件上传。然而,Android原生的HttpClient并不支持Multipart/form-data类型的请求,这在上传文件时...

    Android 中HttpURLConnection与HttpClient使用的简单实例

    在Android开发中,网络通信是应用程序不可或缺的一部分,而HttpURLConnection和HttpClient是两种常用的HTTP客户端库。本文将详细介绍如何在Android中使用这两种方法进行网络请求,并提供简单的实例。 首先,我们来...

    Android_HttpClient_jar包+HttpClientJarAndSource

    总结,HttpClient是Android早期网络通信的重要工具,虽然在新版本中被HttpURLConnection替代,但其丰富的功能和灵活性仍使它在某些场景下具有价值。通过深入学习和使用HttpClient,开发者可以更好地掌握网络请求的...

    android和httpclient结合的例子

    在Android开发中,HTTP通信是应用与服务器交互的重要方式之一,而Apache的HttpClient库是实现这一功能的一个常用选择。这个例子“android和httpclient结合”旨在帮助初学者理解如何在Android项目中集成和使用...

    httpclient-3.1

    《HttpClient 3.1在Android开发中的应用及详解》 HttpClient是Apache软件基金会的一个开源项目,提供了强大的HTTP客户端实现,广泛应用于Java平台的网络通信。本文主要围绕"HttpClient 3.1"版本,探讨其在Android...

    httpClient和URLConnection的区别

    在Android应用开发中,进行网络通信是常见的任务,其中两种主要的请求方式是使用`HttpURLConnection`和`HttpClient`。虽然两者都能实现HTTP通信,但它们在功能、使用方式和性能上存在一些区别。 首先,Apache ...

    Android例子源码使用HttpClient获取网页html源代码.zip

    在较新的Android版本中,应优先考虑使用 HttpURLConnection,因为它更高效,支持异步请求,并且可以进行更多的自定义配置。 总结来说,这个例子旨在帮助开发者了解如何在Android环境中使用HttpClient和...

    org.apache.http.legacy

    这篇描述提供了一个解决方法,即如何在Android 6.0及更高版本的项目中继续使用Apache HTTP API。 Apache HttpClient是一个广泛使用的HTTP客户端实现,它提供了丰富的功能,如连接管理、重试策略、缓存支持以及多种...

    深入Android通过Apache HTTP访问HTTP资源示例代码

    在Android开发中,有时我们需要与远程服务器进行交互,获取或发送数据。Apache HTTP客户端库是Android SDK早期版本中提供的一种方式,它允许开发者方便地执行HTTP请求。然而,从Android API 23(Marshmallow)开始,...

    Android-Httpclient_Get_Post

    在Android早期版本中,`HttpClient`是官方推荐的网络通信方式,但在API级别22之后,其已被弃用,取而代之的是`HttpURLConnection`和`OkHttp`等更现代、更高效的库。然而,由于`HttpClient`的成熟性和易用性,许多...

    Android例子源码httpclient获取到JSON数据并展示到ListView

    - 自Android 6.0(API级别23)起,HttpClient已弃用,推荐使用Android的 HttpURLConnection 或第三方库如OkHttp。然而,对于支持较低版本Android的应用,仍然可以使用HttpClient。 以上就是这个Android示例的核心...

    AndroidHttpClient详解及调用示例

    AndroidHttpClient是Google专门为Android平台设计的一个HTTP客户端库,它是基于Apache HttpClient进行封装的。这个类在Android开发中常用于执行HTTP请求,如GET、POST等。AndroidHttpClient在原生的HttpClient基础上...

Global site tag (gtag.js) - Google Analytics