鉴于代码:
HttpURLConnection huc = (HttpURLConnection) new URL( url ).openConnection();
huc.setConnectTimeout( 10000 );
huc.connect();
如何处理连接超时?一些HTTP标头设置或什么?或者正在循环检查连接状态connectionTimeout
时间?
我试图在源代码中找到它,但只有long connectionTimout
字段...
答案 0 :(得分:2)
将其视为:
在connect
内,首先为连接超时运行并行计时器。
如果计时器在建立实际连接之前结束(收到响应),则失败。
实际上,在大多数平台上,操作系统可以通过超时进行参数化,并以相同的方式自行处理。
没有看过java本机代码,但有像setsocketopt
这样的POSIX方法可以用来设置超时。 POSIX connect
将暂停。
在java中,超时是利用这些可用超时的后续需求。