gpt4 book ai didi

Android ThreadSafeClientConnManager 超时?

转载 作者:行者123 更新时间:2023-11-29 22:32:42 25 4
gpt4 key购买 nike

我正在使用 ThreadSafeClientConnManager 在 Android 的后台线程中执行同步请求,设置为:

HttpParams params = new BasicHttpParams();
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, HTTP.DEFAULT_CONTENT_CHARSET);
HttpProtocolParams.setUseExpectContinue(params, true);

SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
registry.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443));

ClientConnectionManager connman = new ThreadSafeClientConnManager(params, registry);
client = new DefaultHttpClient(connman, params);

并执行请求(注意我使用的是 outh-signpost):

HttpGet request = new HttpGet("https://" + API_HOST + "/" + API_VERSION + path);
OAuthConsumer consumer = new CommonsHttpOAuthConsumer(key, secret);
consumer.sign(request);
HttpResponse response = client.execute(request);

问题是一段时间后我开始变得

java.net.SocketException: The operation timed out

我是否需要在请求后显式释放连接?

最佳答案

根据 apache httpclient 的使用指南,您需要确保消耗任何池化资源上的所有内容,以保证它返回到池中,以便稍后可供其他线程使用 -

http://hc.apache.org/httpcomponents-core-4.0.1/tutorial/html/fundamentals.html#d0e244

如果底层库抛出异常,最好中止您尝试运行的 HttpMethod,在这种情况下连接将终止。

关于Android ThreadSafeClientConnManager 超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3443628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com