requests.get("http://172.19.235.178", timeout=75)
是我的一段代码。
它正在网址上尝试获取请求,这是一个手机,并且应该等待75秒才能返回200OK。
此请求在一台Ubuntu计算机上运行良好,但在另一台计算机上不等待75秒。
答案 0 :(得分:0)
根据https://2.python-requests.org/en/master/user/advanced/#timeouts上的文档,您可以在请求连接部分中设置超时,但是遇到的超时是与操作系统相关的套接字超时。
请注意,如果您这样做:
requests.get("http://172.19.235.178", timeout=1)
您得到:
ConnectTimeout :HTTPConnectionPool(主机='172.19.235.178',端口= 80): URL超过最大重试次数:/(由引起 ConnectTimeoutError(,'与172.19.235.178的连接超时。 超时= 1)'))
当您这样做
requests.get("http://172.19.235.178", timeout=75)
您得到:
ConnectionError :HTTPConnectionPool(主机='172.19.235.178',端口= 80):最大值 网址重试次数超出了:/(由 NewConnectionError(':无法建立新的连接:[Errno 10060]连接尝试失败,因为被连接方未 一段时间后正确响应或建立连接 失败,因为连接的主机无法响应',))
您可以按照以下说明更改操作系统的行为:http://willbryant.net/overriding_the_default_linux_kernel_20_second_tcp_socket_connect_timeout
在您的情况下,我将超时设置为10,并尝试使用try除外语句对其进行几次迭代