gpt4 book ai didi

java - 消息为 "Connection timed out"的 ConnectionTimeoutException 和 SSLException 之间的区别

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:17:46 27 4
gpt4 key购买 nike

在我的 Android 代码中(使用 Apache HTTP 客户端)我已经设置了以下参数:

HttpConnectionParams.setConnectionTimeout(params, 30 * SECOND_IN_MILLIS);
HttpConnectionParams.setSoTimeout(params, 30 * SECOND_IN_MILLIS);

我正在连接到 HTTPS 网络服务。在慢速网络上,我在预期的 30 秒后收到了 ConnectionTimeoutException(然后我重试);但是有“少数”情况(我无法观察到任何模式),我得到以下任何一个:

javax.net.ssl.SSLException: Read error: ssl=0xe71160: I/O error during system call, Connection timed out javax.net.ssl.SSLException: Write error: ssl=0xe71160: I/O error during system call, Broken pipe

我从 SO 那里得到这段代码,它仍在测试中:

registry.register(new Scheme("https", 
SSLCertificateSocketFactory.getHttpSocketFactory(30 * SECOND_IN_MILLIS, null), 443));

我能理解连接建立超时和套接字超时——我的问题是我们真的需要 SSL 的第三个超时吗?目的与 SO_TIMEOUT 有何不同?

PS:这些异常似乎是在读/写数据时出现的——这应该会导致数据丢失——但我也无法观察到。

最佳答案

不同之处在于 ConnectionTimeoutException 在根本无法建立连接时发生。这意味着服务器根本无法访问。

SSLException 当连接已经建立但在 SSL 握手期间连接超时时发生。因为超时发生在 SSL 握手开始之后,SSLException 被作为更高级别的异常抛出。

您可以尝试检查是否输入了 ConnectionTimeoutException 作为 SSLException 的原因。

关于java - 消息为 "Connection timed out"的 ConnectionTimeoutException 和 SSLException 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13176648/

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