Python requests.get(url,timeout = 75)不等待指定的超时

时间:2016-11-04 11:12:11

标签: python timeout python-requests

requests.get("http://172.19.235.178", timeout=75) 

是我的一段代码。

它正在网址上尝试获取请求,这是一个手机,并且应该等待75秒才能返回200OK。

此请求在一台Ubuntu计算机上运行良好,但在另一台计算机上不等待75秒。

1 个答案:

答案 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除外语句对其进行几次迭代