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


浙公网安备 33010602011771号