如果在发送请求时,因为网络抖动,从而导致当前的框架误报,应该怎么处理?
接口自动化的超时重试机制
1.超时设置
在发送请求时,加一个timeout参数
url=https://www.baidu.com
data={"username":"test22","password":"123456"}
response=requests.post(url=url,data=data,timeout=3)
设置超时时间为3s
2.重试retrying
retrying是一个python库,用来处理程序中的重试逻辑,retry库中的Retry类可以设置重试次数、异常类型、间隔时间等。
安装 pip install retrying
@retry(stop_max_attempt_number=3,wait_fixed=1000,retry_on_result=lambda x:x is None)
def request_with_retry(url):
try:
response=requests.get(url,timeout=3)
if response.status_code==200:
return response.json()
else:
return None
except Exception as e:
print("requests failed:",{e})
request_with_retry("https://www.baidu.com") ```
使用retry装饰器为函数request_with_retry添加重试逻辑,`stop_max_attempt_number`定义了最大重试次数,`wait_fixed`定义重试之间的时间间隔,`retry_on_result`定义了返回结果是None时进行重试
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~