android - 我应该为每个新请求创建新的 HttpClient 吗?

标签 android

我已经得到并休息了 api 类,它有几种方法可以对我的服务执行 http 请求。在构造函数中它创建 HttpClient 的实例。 Api 实例在不同线程中重用。会不会造成跨线程问题?

目前我看到两种使其线程安全的方法:

  1. 为每个请求创建新的 http 客户端。
  2. 为每个线程创建单独的 api 类实例。

最佳答案

我有一个类似的答案 question这可能会有所帮助。我基本上使用:

// Should be thread safe
public class HttpClientFactory {

            private static DefaultHttpClient client;

            public synchronized static DefaultHttpClient getThreadSafeClient() {
                    if (client != null)
                            return client;
                    client = new DefaultHttpClient();
                    ClientConnectionManager mgr = client.getConnectionManager();
                    HttpParams params = client.getParams();
                    client = new DefaultHttpClient(new ThreadSafeClientConnManager(params,
                                    mgr.getSchemeRegistry()), params);
                return client;

            }
    }

问题有完整的帖子。

关于android - 我应该为每个新请求创建新的 HttpClient 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7212984/

相关文章:

java.lang.NumberFormatException : Invalid int: “” 异常

java - 在设备上安装签名的 apk(使用 libgdx)时出错

android - 在不使用自定义布局的情况下更改通知 addAction 图标和文本颜色

android - 仅从字体样式粗体替换字符

android - 如何在 Android 中更改微调器的布局

android - 在 WebResourceResponse 中获取 webWiev.getUrl() 的值 shouldInterceptRequest(WebView view, String url)

android - Android Eclipse 模拟器上的相机 :

android - 文本小部件中数字数据的百分比波动

java - 文件已创建但返回 false

java - Eclipse "Android Device Chooser"- 目标列中所有设备前面的红叉