如何为urllib3请求设置超时?实现10秒超时请求方案
为urllib3请求设置10秒连接超时
直接在request方法中指定连接超时参数即可,以下是修改后的完整代码:
import urllib3 from urllib3.exceptions import ConnectTimeoutError http = urllib3.PoolManager() try: # 明确设置连接超时为10秒,读取超时可按需补充(示例未指定则用默认值) page = http.request('get', link, timeout=urllib3.Timeout(connect=10)) # 连接成功,返回响应数据 print(page.data) except ConnectTimeoutError: # 连接超时,返回错误提示 print("错误:无法在10秒内连接到目标站点")
关键说明:
- 使用
urllib3.Timeout(connect=10)精准指定连接阶段的超时时间,完全匹配你要求的"尝试连接目标站点10秒"的需求。 - 如果需要同时限制读取响应数据的超时时间,可以写成
Timeout(connect=10, read=30),其中read参数定义读取响应的超时时长。 - 通过捕获
ConnectTimeoutError异常,能在超时发生时准确返回错误信息,避免程序崩溃。 - 若不需要区分连接和读取阶段的超时,也可以直接传数值
timeout=10,但这种方式是设置总超时(连接+读取合计),精准度不如前者。
内容的提问来源于stack exchange,提问作者Asidistaken
相关产品推荐
相关产品推荐

