Request rejected (429) · Service Unavailable
错误信息
API Error: Request rejected (429) · Service Unavailable
AI 解决方案
报错分析报告
1.错误翻译
原文:Request rejected (429) · Service Unavailable
译文:请求被拒绝(429状态码)· 服务不可用
2. 原因分析
3. 解决方案
import requests
import time
def call_api_with_backoff(url, max_retries=3, initial_delay=2):
delay = initial_delay
for attempt in range(max_retries):
try:
response = requests.get(url)
if response.status_code == 200:
return response.json()
elif response.status_code == 429:
print(f"⚠️ 速率限制触发(第{attempt+1}次),等待{delay}秒后重试...")
time.sleep(delay)
delay *= 2 # 指数退避
else:
response.raise_for_status()
except requests.exceptions.RequestException as e:
print(f"❌ 请求失败: {e}")
if attempt < max_retries - 1:
time.sleep(delay)
delay *= 2
raise Exception("达到最大重试次数,API调用失败")
# 使用示例
try:
data = call_api_with_backoff("https://api.example.com/endpoint")
except Exception as e:
print(e)
4. 预防措施
tenacity(Python重试库)、Redis(分布式限流)、Postman(测试API阈值)。