【问题标题】:How the URLConnection.connectionTimeout is handled?URLConnection.connectionTimeout 是如何处理的?
【发布时间】:2016-09-08 09:29:35
【问题描述】:

给定代码:

HttpURLConnection huc = (HttpURLConnection) new URL( url ).openConnection();
huc.setConnectTimeout( 10000 );
huc.connect();

究竟如何处理连接超时?设置了一些 HTTP 标头还是什么?还是循环检查connectionTimeout时间的连接状态?

我试图在源码中找到,但是只有long connectionTimout这个字段...

【问题讨论】:

    标签: java httpurlconnection urlconnection connection-timeout


    【解决方案1】:

    把它想象成:

    connect 内部,首先运行一个并行计时器以用于连接超时。 如果计时器在实际连接建立(收到响应)之前结束,则失败。

    实际上,在大多数平台上,操作系统都可以设置超时参数并自行处理 - 以相同的方式。 没有看过 java 本机代码,但是有像 setsocketopt 这样的 POSIX 方法来设置超时。 POSIX connect 会超时。

    在 java 中,超时是后来利用这些可用超时非常需要的补充。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-09
      • 2012-10-07
      • 2015-01-13
      相关资源
      最近更新 更多