【发布时间】:2012-06-21 14:51:04
【问题描述】:
我想知道AndroidHttpClient 线程是否安全,因为文档中没有提到这一点。这意味着,AndroidHttpClient 的单个实例可以在多个线程之间共享。
【问题讨论】:
标签: java android androidhttpclient
我想知道AndroidHttpClient 线程是否安全,因为文档中没有提到这一点。这意味着,AndroidHttpClient 的单个实例可以在多个线程之间共享。
【问题讨论】:
标签: java android androidhttpclient
是的,它是线程安全的。
AndroidHttpClient 是 DefaultHttpClient 的一个特殊实现,它是为 Android 预先配置的。它注册了ThreadSafeClientConnManager,它允许通过托管连接池进行线程安全的HTTP访问。 AndroidHttpClient 还为超时和套接字缓冲区大小应用合理的默认设置。它也默认支持HTTPS。
你可以找到源代码here。
【讨论】:
根据代码它是线程安全的,因为它使用
ClientConnectionManager manager =
new ThreadSafeClientConnManager(params, schemeRegistry);
根据source
唯一的缺点是它的 Api 级别 8 及以上 (2.2.x)
【讨论】:
是的,它是线程安全的。另外,一定要使用工厂方法:
newInstance(String userAgent, Context context)
将其与 HTTPS 一起使用以确保 SSL 会话的缓存。
【讨论】: