requests请求尝试超时重连

# 参考文档
https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html#module-urllib3.util.retry

# 代码示例
import requests
from urllib3.util.retry import Retry
from requests.adapters import HTTPAdapter

req = requests.Session()
retries = Retry(total=3,
                backoff_factor=0.1,
                status_forcelist=[500, 502, 503, 504, 521])
req.mount('https://', HTTPAdapter(max_retries=retries))
try:
    result = req.get(url="http://httpstat.us/500", verify=False, timeout=5)
    if result.status_code == 200:
        print("ok")
except requests.exceptions.RetryError:  #这边我们捕获尝试连接错误类,其它如具体的类在结合项目的时候会有问题,具体参考自己的项目修改。
    print("error")
    
# 相关Retry参数说明
total  允许的重试次数
connect 要重试的连接相关错误数
read  读取错误时重试多少次
redirect  要执行的重定向数
status_forcelist 一组我们应该强制重试的HTTP状态代码
backoff_factor 在第二次尝试后在尝试之间应用的退避因素(大多数错误会立即通过第二次尝试解决,没有延迟)
raise_on_redirect  如果重定向次数用尽,是否引发 MaxRetryError 或返回响应代码在 3xx 范围内的响应。
raise_on_status  类似于raise_on_redirect:如果状态在status_forcelist范围内并且重试已经用尽,我们是否应该引发异常或返回响应。
上一篇:vue 项目中 任意切换 request url (axios baseUrl)


下一篇:爬虫之模拟登录、自动获取cookie值、验证码识别