讲师中心 微信公众号

工具推荐

视频效率加速
立刻MV
立刻MV

低成本歌曲 MV、视频生成

updream

一键生成高质量推广成片

Laper
Laper

剧本策划到成片协作

Seko
Seko

AI短剧一键生成成片

Python requests 超时与重试机制实现

轻芳君_4714

轻芳君_4714

发布时间:2026-02-26 20:21:01

|

530人浏览过

|

来源于php中文网

原创

Python requests库需手动配置超时和重试以提升健壮性:超时推荐用元组(timeout=(connect, read))分别控制连接与读取阶段;重试需通过HTTPAdapter注入urllib3的Retry策略,仅对5xx、429等错误生效,并配合指数退避。

python requests 超时与重试机制实现

Python requests 库默认不启用自动重试,超时也需手动设置;不配置的话,请求可能无限等待或失败后不重试,影响程序健壮性。

超时设置:分连接与读取两阶段

requests 的 timeout 参数接受数字或元组。单个数字表示连接+读取总超时;更推荐用元组 (connect_timeout, read_timeout) 分开控制:

  • connect_timeout:建立 TCP 连接的最长时间,网络不通、DNS 失败时触发
  • read_timeout:成功连接后,等待服务器响应首字节的最长时间(不是整个响应体)

例如:requests.get(url, timeout=(3, 10)) 表示最多等 3 秒连上,连上后再等最多 10 秒收第一个字节。若响应体大且流式下载,还需配合 stream=True 和分块读取,避免卡在 read 阶段。

重试机制:用 urllib3 的 Retry 类

requests 底层基于 urllib3,可通过 HTTPAdapter 注入自定义重试策略。关键点:

Python Hardener
Python Hardener

通过完整的安全审查、代码整洁重构、健壮的错误处理、正确的日志记录以及完整的文档字符串覆盖,强化 Python 脚本。

下载

立即学习“Python免费学习笔记(深入)”;

  • 重试只对特定状态码(如 5xx、429)和网络错误生效,不会重试 4xx(如 404、400)
  • 可指定最大重试次数、退避因子(指数退避)、重试的 HTTP 方法
  • 需为 session 或单个 request 显式挂载 adapter

示例代码:

from requests.adapters import HTTPAdapter
from urllib3.util.retry import Retry

retry_strategy = Retry(
    total=3,
    status_forcelist=[429, 500, 502, 503, 504],
    method_whitelist=["HEAD", "GET", "OPTIONS", "POST"],
    backoff_factor=1
)
adapter = HTTPAdapter(max_retries=retry_strategy)
session = requests.Session()
session.mount("http://", adapter)
session.mount("https://", adapter)

response = session.get("https://api.example.com/data")

组合超时与重试的最佳实践

两者应协同使用,避免重试浪费时间或陷入长等待:

  • connect timeout 设为 3–5 秒,防止 DNS 慢或目标不可达时卡住
  • read timeout 根据接口预期响应时间设定,一般 5–30 秒;流式接口可设更低,靠循环读取控制
  • 重试次数建议 2–3 次,配合 backoff_factor=1(即第 1 次重试前等 1 秒,第 2 次等 2 秒,第 3 次等 4 秒)
  • 对 POST/PUT 等非幂等请求,谨慎开启重试,或改用带业务幂等性的方案

注意边界情况

有些问题无法靠超时和重试解决:

  • SSL 握手超时:属于 connect 阶段,但有时会表现异常,可加 verify=False(仅测试)或更新 CA 证书
  • 代理超时:若走代理,超时可能由代理服务控制,需同步配置代理端
  • 重定向循环:默认最多重定向 30 次,可通过 allow_redirects=True 和 max_redirects 调整,但不属 Retry 控制范围

热门AI工具

更多
立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

小橡皮AI

一款AI工具,主要用于小橡皮一键去AI味,将机器味重的内容改得更有活人感,防止因为 AI 内容被平台打上 AI 标签,以及限流,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

讯飞智文

一款面向学习和办公场景的AI文档创作工具,可辅助生成PPT与Word文档,提高资料整理和内容制作效率。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

相关专题

更多
session失效的原因
session失效的原因

session失效的原因有会话超时、会话数量限制、会话完整性检查、服务器重启、浏览器或设备问题等等。详细介绍:1、会话超时:服务器为Session设置了一个默认的超时时间,当用户在一段时间内没有与服务器交互时,Session将自动失效;2、会话数量限制:服务器为每个用户的Session数量设置了一个限制,当用户创建的Session数量超过这个限制时,最新的会覆盖最早的等等。

580

2023.10.17

session失效解决方法
session失效解决方法

session失效通常是由于 session 的生存时间过期或者服务器关闭导致的。其解决办法:1、延长session的生存时间;2、使用持久化存储;3、使用cookie;4、异步更新session;5、使用会话管理中间件。

876

2023.10.18

cookie与session的区别
cookie与session的区别

本专题整合了cookie与session的区别和使用方法等相关内容,阅读专题下面的文章了解更详细的内容。

1966

2025.08.19

硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

3228

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

5369

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3889

2025.12.29

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

506

2026.01.19

http500解决方法
http500解决方法

http500解决方法有检查服务器日志、检查代码错误、检查服务器配置、检查文件和目录权限、检查资源不足、更新软件版本、重启服务器或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3963

2023.11.09

Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

40

2026.11.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn