Requests不会超时。

7 浏览
0 Comments

Requests不会超时。

我正在使用Python中的requests库来检查恶意标头。我的代码可以正常工作,但是有一个特定的IP地址既不关闭连接,也不超时。\n

def check():
  ...
  r=requests.head('https://50.79.153.56',verify=False,timeout=(4,4))
  ...

\n使用curl我发现该网站一直发送相同的字节序列。\n

curl -v -k https://50.79.153.56
....
> ~▒}#▒!}!}!} }8}"}&} } } } }#}$▒#}%}&i+G}<}'}"}(}"▒▒~~▒}#▒!}!}!} }

\n使用这个方法可以成功!\n

curl -v -k https://50.79.153.56 -m 3
...
curl: (28) 3000毫秒后操作超时,接收到51个字节

\n应该如何设置requests中的timeout参数才能避免类似的情况发生?\n我尝试了Python2.7和3.x,但结果都一样。

0
0 Comments

问题:为什么请求不会超时,以及解决方法是什么?

在给定的代码示例中,我们使用了`requests`库来发送一个`HEAD`请求。我们已经设置了`timeout`参数为4秒,但是无论如何都不会超时。我们还尝试了将`timeout`参数设置为`(4, 4)`,但结果仍然是一样的。

我们发现通过设置`verify`参数为`False`,我们可以绕过SSL证书验证。然而,这也导致了一个问题,即无法超时。这是因为SSL需要进行验证,而我们将其设置为`False`,因此连接无法成功建立,也就无法超时。

解决这个问题的方法是通过其他方式来控制总连接时间。例如,可以使用一个线程来建立连接,并在特定的时间后终止连接。这样就可以达到超时的效果。

总结起来,问题的原因是SSL证书验证失败,导致连接无法建立,从而无法超时。解决方法是通过其他方式来控制总连接时间。

文章如下:

在给定的代码示例中,我们使用了`requests`库来发送一个`HEAD`请求。我们已经设置了`timeout`参数为4秒,但是无论如何都不会超时。我们还尝试了将`timeout`参数设置为`(4, 4)`,但结果仍然是一样的。

我们发现通过设置`verify`参数为`False`,我们可以绕过SSL证书验证。然而,这也导致了一个问题,即无法超时。这是因为SSL需要进行验证,而我们将其设置为`False`,因此连接无法成功建立,也就无法超时。

解决这个问题的方法是通过其他方式来控制总连接时间。例如,可以使用一个线程来建立连接,并在特定的时间后终止连接。这样就可以达到超时的效果。

总结起来,问题的原因是SSL证书验证失败,导致连接无法建立,从而无法超时。解决方法是通过其他方式来控制总连接时间。

0