requests库中的的自动重试

1 前言

利用requests库请求接口时,有时由于网络或者其他因素考虑,我们希望在请求失败后在重新试一下是否能请求成功

2 例子

看下官方文档的介绍

image

从中可知,默认情况下,requests请求失败是没有重试机制的,可利用urllib3中的Retry这个类来实现一个自定义的adpter,这样,通过session对象请求的任何url在失败后都会重试

自己实现一个例子

环境准备

利用前面介绍的python + Flask在本地搭建了一个简单的接口服务,用于测试接口请求
image

如上,是请求成功的情况
接口有一个json传参,json中有username这个字段,请求成功后返回的数据是包含username的欢迎语

现在传参用form形式,请求就会失败,如下
image

具体实现

利用请求失败的情况写成python代码
image
执行 请求本地服务的接口
image
状态码415 和potman中测试结果是一致的

添加重试机制
image

执行
image
报异常 因为too many 415 response

查看服务端的接口请求日志
image
可以看到,一共请求了4次接口 每次都是415

Retry类中可用的参数字段除了上面的4个还有很多,具体查看文档
https://urllib3.readthedocs.io/en/stable/reference/urllib3.util.html#urllib3.util.Retry
image

posted @   工作手记  阅读(279)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示