在 Python 2.4.4 中,我urllib2.urlopen()
用于请求资源。在发出请求之前,我设置了一个超时:
socket.setdefaulttimeout(10)
(这个版本的 Python 太旧了,没有urlopen()
内置超时的版本。)
在大多数情况下,这似乎工作正常。但是,我遇到了一个仅应请求挂起的服务器。在 Chrome 中,大约需要 5 分钟,浏览器才会放弃并说:
谷歌浏览器无法加载网页,因为 SERVERNAME 响应时间过长。该网站可能已关闭,或者您的 Internet 连接可能出现问题。
在 Python 中urlopen
,尽管设置了短暂的超时,但请求似乎无限期挂起。究竟socket.setdefaulttimeout()
控制什么,有没有办法对这些连接强制执行硬超时(如果 10 秒过去了,不管发生了什么,终止尝试)?