Requests不会超时。
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,但结果都一样。
问题:为什么请求不会超时,以及解决方法是什么?
在给定的代码示例中,我们使用了`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证书验证失败,导致连接无法建立,从而无法超时。解决方法是通过其他方式来控制总连接时间。