gpt4 book ai didi

如果 streams=True,Python Requests 模块不处理超时?

转载 作者:太空宇宙 更新时间:2023-11-04 10:28:57 24 4
gpt4 key购买 nike

我正在使用 Python 请求模块获取一批网址。我首先只想阅读他们的标题,以获取实际的 url 和响应的大小。然后我得到任何通过集合的实际内容。

所以我使用“streams=True”来延迟获取内容。这通常工作正常。

但我偶尔会遇到一个没有响应的网址。所以我输入 timeout=3。

但那些永远不会超时。他们只是挂起。如果我删除“streams=True”,它会正确超时。流和超时不应该一起工作有什么原因吗?删除 streams=True 会强制我获取所有内容。

这样做:

import requests
url = 'http://bit.ly/1pQH0o2'
x = requests.get(url) # hangs
x = requests.get(url, stream=True) # hangs
x = requests.get(url, stream=True, timeout=1) # hangs
x = requests.get(url, timeout=3) # times out correctly after 3 seconds

最佳答案

有一个相关的 github 问题:

修复是 included into requests==2.3.0 version .

使用最新版本对其进行了测试 - 对我有用。

关于如果 streams=True,Python Requests 模块不处理超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28015146/

24 4 0