在官方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,获得更高的性能
分享到:
相关推荐
- 在Android中使用HttpClient需要注意版本兼容性,因为从API 22开始,HttpClient已被弃用,建议使用`HttpURLConnection`。 - 但HttpClient的稳定性和灵活性使其在某些场景下仍然是首选,特别是在处理复杂的HTTP...
总的来说,HttpURLConnection更现代,更适合Android,而HttpClient虽然被弃用,但在某些情况下仍然适用。选择哪种方式取决于项目需求和个人偏好。理解这两种方法的工作原理以及如何处理GET和POST请求,是每个Android...
在Android中,我们可以使用`AndroidHttpClient`,它是`HttpClient`的一个优化版本,更适合Android平台。 #### 1.1 配置HttpClient访问HTTPS(不验证证书) ```java // 创建HttpClient实例 HttpClient httpClient =...
1. Android API版本变化:在Android API 23及以上,`HttpClient`被弃用,推荐使用`HttpURLConnection`。但在较低版本中,`HttpClient`仍然是一个可靠的选项,尤其是在处理文件上传等复杂场景时。 2. 连接池与线程...
总结来说,虽然HttpClient在早期Android版本中更常见,但随着版本的更新,HttpURLConnection成为了首选。两者都可以用来获取网页HTML源代码,但在API Level 21及更高版本中,HttpURLConnection具有更好的性能和更低...
4. Android API 22及之后,`HttpClient`被标记为过时,推荐使用`HttpURLConnection`。但在一些旧项目或对性能有特定要求的情况下,仍有人选择继续使用`HttpClient`。 最后,`教程重要说明.txt`可能是本实例的详细...
在Android开发中,进行HTTP通信是一项常见的任务,而Apache HttpClient是一个流行的选择,它提供了丰富的功能,包括文件上传。然而,Android原生的HttpClient并不支持Multipart/form-data类型的请求,这在上传文件时...
在Android开发中,网络通信是应用程序不可或缺的一部分,而HttpURLConnection和HttpClient是两种常用的HTTP客户端库。本文将详细介绍如何在Android中使用这两种方法进行网络请求,并提供简单的实例。 首先,我们来...
总结,HttpClient是Android早期网络通信的重要工具,虽然在新版本中被HttpURLConnection替代,但其丰富的功能和灵活性仍使它在某些场景下具有价值。通过深入学习和使用HttpClient,开发者可以更好地掌握网络请求的...
在Android开发中,HTTP通信是应用与服务器交互的重要方式之一,而Apache的HttpClient库是实现这一功能的一个常用选择。这个例子“android和httpclient结合”旨在帮助初学者理解如何在Android项目中集成和使用...
《HttpClient 3.1在Android开发中的应用及详解》 HttpClient是Apache软件基金会的一个开源项目,提供了强大的HTTP客户端实现,广泛应用于Java平台的网络通信。本文主要围绕"HttpClient 3.1"版本,探讨其在Android...
在Android应用开发中,进行网络通信是常见的任务,其中两种主要的请求方式是使用`HttpURLConnection`和`HttpClient`。虽然两者都能实现HTTP通信,但它们在功能、使用方式和性能上存在一些区别。 首先,Apache ...
在较新的Android版本中,应优先考虑使用 HttpURLConnection,因为它更高效,支持异步请求,并且可以进行更多的自定义配置。 总结来说,这个例子旨在帮助开发者了解如何在Android环境中使用HttpClient和...
这篇描述提供了一个解决方法,即如何在Android 6.0及更高版本的项目中继续使用Apache HTTP API。 Apache HttpClient是一个广泛使用的HTTP客户端实现,它提供了丰富的功能,如连接管理、重试策略、缓存支持以及多种...
在Android开发中,有时我们需要与远程服务器进行交互,获取或发送数据。Apache HTTP客户端库是Android SDK早期版本中提供的一种方式,它允许开发者方便地执行HTTP请求。然而,从Android API 23(Marshmallow)开始,...
在Android早期版本中,`HttpClient`是官方推荐的网络通信方式,但在API级别22之后,其已被弃用,取而代之的是`HttpURLConnection`和`OkHttp`等更现代、更高效的库。然而,由于`HttpClient`的成熟性和易用性,许多...
- 自Android 6.0(API级别23)起,HttpClient已弃用,推荐使用Android的 HttpURLConnection 或第三方库如OkHttp。然而,对于支持较低版本Android的应用,仍然可以使用HttpClient。 以上就是这个Android示例的核心...
AndroidHttpClient是Google专门为Android平台设计的一个HTTP客户端库,它是基于Apache HttpClient进行封装的。这个类在Android开发中常用于执行HTTP请求,如GET、POST等。AndroidHttpClient在原生的HttpClient基础上...