Python接口调用连接失败情况解决办法

retry_strategy = Retry(
    total=3,
    backoff_factor=0.5,
    status_forcelist=[500, 502, 503, 504],
    allowed_methods=["GET"]  # 使用 allowed_methods 参数代替 method_whitelist 参数
)
session = requests.Session()
adapter = HTTPAdapter(max_retries=retry_strategy)
session.mount("http://", adapter)
session.mount("https://", adapter) 

response_target = session.get(url, headers=headers)
response_data = response_target.json()

首先,创建了一个 Retry 对象,该对象指定了以下参数:

  • total:设置最大重试次数为 3 次;
  • backoff_factor:设置退避因子为 0.5,表示每次重试之间的等待时间会逐渐增加;
  • status_forcelist:指定当响应状态码为 500、502、503 或 504 时触发重试;
  • allowed_methods:指定只有 GET 方法的请求才会被重试。

然后,创建了一个 requests.Session 对象,该对象是用来发送 HTTP 请求的会话对象。

接下来,创建了一个 HTTPAdapter 对象,并将其挂载到会话对象上。HTTPAdapter 是用于处理不同协议的适配器,这里我们将其挂载到 "http://" 和 "https://" 前缀的请求上。

通过这样的配置,当发送的请求出现连接失败或者遇到指定的响应状态码时,会自动进行重试,最多重试 3 次。重试的等待时间会逐渐增加,以防止频繁请求导致的负荷过大。只有 GET 方法的请求会被重试,其他方法的请求不会进行重试。这样可以提高请求的稳定性和可靠性。

你可能感兴趣的:(python,开发语言)