requests库中的的自动重试
1 前言
利用requests库请求接口时,有时由于网络或者其他因素考虑,我们希望在请求失败后在重新试一下是否能请求成功
2 例子
看下官方文档的介绍
从中可知,默认情况下,requests请求失败是没有重试机制的,可利用urllib3中的Retry这个类来实现一个自定义的adpter,这样,通过session对象请求的任何url在失败后都会重试
自己实现一个例子
环境准备
利用前面介绍的python + Flask在本地搭建了一个简单的接口服务,用于测试接口请求
如上,是请求成功的情况
接口有一个json传参,json中有username这个字段,请求成功后返回的数据是包含username的欢迎语
现在传参用form形式,请求就会失败,如下
具体实现
利用请求失败的情况写成python代码
执行 请求本地服务的接口
状态码415 和potman中测试结果是一致的
添加重试机制
执行
报异常 因为too many 415 response
查看服务端的接口请求日志
可以看到,一共请求了4次接口 每次都是415
Retry类中可用的参数字段除了上面的4个还有很多,具体查看文档
https://urllib3.readthedocs.io/en/stable/reference/urllib3.util.html#urllib3.util.Retry
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南