Android是否同时支持多个HTTP请求?

时间:2011-09-21 14:19:18

标签: android http request httpclient simultaneous-calls

在我的应用程序中,我想同时处理几个文件的下载。 为此,我将启动多个服务,每个请求一个。 我不确定,Android是否同时支持http请求?

在这种情况下,每个请求有一个HTTPClient是好习惯还是坏习惯?

非常感谢你的帮助!

3 个答案:

答案 0 :(得分:18)

HttpClient不是异步的,本身不支持并行连接。您可以拥有多个线程,每个线程使用单独的HttpClient实例执行下载。

您可能还想查看ExecutorService:http://developer.android.com/reference/java/util/concurrent/ExecutorService.html

答案 1 :(得分:5)

当配备池化连接管理器(如ThreadSafeClientConnManager)时,HttpClient可用于使用多个执行线程同时执行多个请求。

以下是有关如何使用它的完整示例:2.9. Multithreaded request execution.

更新:花费了一段时间,但ThreadSafeClientConnManager现已弃用(请参阅以下Apache Http Client Removal摘录):

  

Android 6.0版本删除了对Apache HTTP客户端的支持。如果您的应用使用此客户端并定位到Android 2.3(API级别9)或更高版本,请改用HttpURLConnection类。此API更有效,因为它通过透明压缩和响应缓存减少了网络使用,并最大限度地降低了功耗。

答案 2 :(得分:0)

进行一些测试以确定有多少并发HTTPRequest正常工作。

我建议启动一项服务并拥有许多线程而不是多项服务。