我正在查看http://docs.python-requests.org/en/latest/,“连接超时”被列为一项功能。但是,当我进一步阅读时,它说明了
超时不是整个响应下载的时间限制;相反,如果服务器没有发出超时秒响应(更确切地说,如果在超时秒内没有在底层套接字上收到任何字节),则会引发异常。
这听起来不像连接超时的描述。我所看到的是连接成功,它上传了一个大文件,然后等待响应。但是,响应需要一段时间,然后超时。
如何设置连接超时,但是一旦连接成功,仍然等待响应缓慢?非常感谢。
答案 0 :(得分:4)
超时用于套接字连接阶段和响应读取阶段。唯一的例外是流式传输请求;如果设置stream=True
,则超时不能应用于读取部分。确实使用 来等待套接字连接或接收数据。
如果您需要整体超时,请使用其他技术,例如使用中断或eventlet:Timeout for python requests.get entire response
答案 1 :(得分:0)
(针对人类的)请求库具有连接超时,请参见 -https://requests.kennethreitz.org/en/master/user/advanced/#timeouts
r = requests.get('https://github.com', timeout=(3.05, 27))
# e.g. explicitly
conn_timeout = 6
read_timeout = 60
timeouts = (conn_timeout, read_timeout)
r = requests.get('https://github.com', timeout=timeouts)
对于元组中的哪个值,文档并不确定,但是可以安全地假设是(connect, read)
超时。