为防止服务器响应缓慢,导致客服端处理异常,requests请求大多设置 timeout 参数。Requests中timeout 不设置默认值
。
Timeout 类型:
-
连接超时
指的是客户端实现到远端服务器端口的连接时request 所等待的时间。连接超时一般设为比 3 的倍数略大的一个数值,因为 TCP 数据包重传窗口的默认大小是 3。 -
读取超时
指的客户端已经连接上服务器并且发送了request后,客户端等待服务器发送请求的时间。(一般指的是服务器发送第一个字节之前的时间)。
客户端timeout 秒内从基础套接字上必须接收到第一个字节的数据, 否则抛出超时异常。
timeout 设置单一的值,将会用作 connect
和 read
二者的 timeout。
requests.get('https://github.com', timeout=5)
如果要分别制定,就需要传入一个元组。
requests.get('https://github.com', timeout=(3.05, 27))
如果需要让 request 永远等待,则传入一个 None 作为 timeout 的值。
requests.get('https://github.com', timeout=None)
参考:requests
网友评论