requests.get("http://172.19.235.178", timeout=75)
是我的一段代码。
它正在尝试对一个电话url进行get请求,并且应该等待75秒才能返回200OK。
此请求在一台Ubuntu机器上运行良好,但在另一台机器上不会等待75秒。
根据https://2.python-requests.org/en/master/user/advanced/#timeouts上的文档,您可以在请求连接部分设置超时,但您遇到的超时是操作系统相关的套接字超时。
注意,如果你这样做:
requests.get("http://172.19.235.178", timeout=1)
你:
ConnectTimeout: HTTPConnectionPool(host='172.19.235.178', port=80):超过url:/的最大重试次数(由ConnectTimeoutError(, '连接172.19.235.178超时。(连接timeout = 1) '))
而当你这样做时
requests.get("http://172.19.235.178", timeout=75)
你:
ConnectionError: HTTPConnectionPool(host='172.19.235.178', port=80): Max . error重试次数超过url:/(由NewConnectionError(': Failed to establish a new connection: [Errno .10060]连接尝试失败,因为被连接的一方没有一段时间后适当回应,或建立联系失败,因为连接的主机未能响应',))
虽然你可以改变你的操作系统的行为如下所述:http://willbryant.net/overriding_the_default_linux_kernel_20_second_tcp_socket_connect_timeout
在你的例子中,我会设置一个10的超时,并使用try except语句