代码示例:
import requests
from requests.adapters import HTTPAdapter
from requests.packages.urllib3.util.retry import Retry
def requests_with_retries_example():
# 创建一个session对象,该对象将被配置为在失败时自动重试
session = requests.Session()
# 设置重试策略,最多尝试5次,并且在必要时等待2秒
retries = Retry(total=5, backoff_factor=2)
# 将重试策略附加到HTTPAdapter
session.mount('http://', HTTPAdapter(max_retries=retries))
session.mount('https://', HTTPAdapter(max_retries=retries))
# 使用session对象发起请求,如果请求失败,将会根据配置进行重试
response = session.get('http://example.com/api')
# 检查请求是否成功
if response.status_code == 200:
print("Success:", response.text)
else:
print("Failed to retrieve data after max retries")
调用函数
requests_with_retries_example()
这段代码首先导入了requests模块,并通过HTTPAdapter和Retry类配置了自动重试的策略。然后创建了一个Session对象,并将重试策略挂载到了该对象,使得在会话范围内所有请求都将自动遵循这些重试规则。最后,我们使用这个有重试功能的Session对象发起了一个HTTP GET请求,并根据需要打印了响应结果。