给定代码:
HttpURLConnection huc = (HttpURLConnection) new URL( url ).openConnection();
huc.setConnectTimeout( 10000 );
huc.connect();
如何正确处理连接超时?设置了一些HTTP标头或什么?还是正在循环检查
connectionTimeout
时间的连接状态?我试图在源代码中找到它,但是只有
long connectionTimout
字段... 最佳答案
认为是:
首先在connect
内部,为连接超时运行并行计时器。
如果计时器在建立实际连接(收到响应)之前结束,则失败。
实际上,在大多数平台上,操作系统都可以设置超时参数,并以相同的方式自行处理。
没有看过Java本机代码,但是有POSIX方法(如setsocketopt
)可以用来设置超时。 POSIX connect
将给出超时。
在Java中,超时是后来更需要的一种利用这些可用超时的方法。