gpt4 book ai didi

java - Android:如何使用 ThreadSafeClientConnectionManager 为 SSL 套接字设置超时以阻止读/写?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:13:29 24 4
gpt4 key购买 nike

如何使用 ThreadSafeClientConnectionManaget 为 SSL 套接字设置超时以进行阻塞读/写?我发现在 Android OS 2.2 和 2.3 设备上读取或写入 SSL 套接字时丢失网络连接会导致 15 分钟超时。

我在 HttpClient 上设置了以下超时:

    mParams = new BasicHttpParams();
HttpProtocolParams.setVersion(mParams, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(mParams, "UTF-8");
HttpProtocolParams.setUserAgent(mParams, USER_AGENT);

HttpConnectionParams.setConnectionTimeout(mParams, TIME_OUT);
HttpConnectionParams.setSoTimeout(mParams, TIME_OUT);

ConnManagerParams.setTimeout(mParams, TIME_OUT);

final SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme(HTTP_SCHEME, PlainSocketFactory.getSocketFactory(), 80));
registry.register(new Scheme(HTTPS_SCHEME, SSLSocketFactory.getSocketFactory(), 443));

final ThreadSafeClientConnManager manager = new ThreadSafeClientConnManager(mParams, registry);

mClient = new DefaultHttpClient(manager, mParams);

然后我使用客户端执行带有文件实体的 http put 请求。如果我在上传过程中打开飞行模式,等待 15-30 秒,然后关闭飞行模式,套接字将卡在读取或写入状态,并且不会超时 15 分钟。

最佳答案

不是要偏离你非常合理的问题,而是博客文章 Android's HTTP Clients建议使用 HttpURLConnection为了新的发展。您是否考虑过切换 API?

关于java - Android:如何使用 ThreadSafeClientConnectionManager 为 SSL 套接字设置超时以阻止读/写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9203126/

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