首页 > 编程语言 >Python调用接口鲁棒化处理防止阻塞

Python调用接口鲁棒化处理防止阻塞

时间:2022-12-03 18:13:04浏览次数:36  
标签:返回 调用 鲁棒化 Python res 阻塞 接口 json timeout

如果是同其他团队或者系统协作开发,无法保证对方的接口不出问题,所以要考虑一种鲁棒的方法,保证自己的程序不管什么情况下都可以有合适的值返回。

1.如果调用对方接口网络不同,或者服务挂掉

这时候使用try+request自带的timeout功能进行异常处理

timeout的功能是如果在规定时间内接口没有返回或者读取完成,则抛出异常。

再使用try捕获异常并返回一个相对靠谱的定值。

 

2.如果调用对方接口返回出错,可能是对方更改调用方式,参数等原因,接口返回非200

这时候就判断一个返回值是不是200,如果不是,就返回一个靠谱的定值。

 

通过以上两个方法,就可以让自己的服务在接口不通或者请求失败的时候还能提供一个基础服务。以上两个方法都需要记录相关情况到日志中,这样有迹可循。

当然这个情况是应用在该接口不是关键接口的情况,如果该接口的返回是程序必不可少的参数,那么只能保证服务不报错,但是质量无法保证。

 

例子:

 1 url="http://192.168.x.x/xxx/xxxx"
 2 headers = {'Content-Type': 'application/json'}
 3 data_json = {}
 4 fake_res=xxx
 5     
 6 try:
 7     res = requests.post(url,data=json.dumps(data_json),headers=headers,timeout=(3,2))
 8 except Exception as e:
 9     print('接口不通')
10     return fake_res
11 if res.status_code!=200:
12     print('接口返回报错')
13     return fake_res
  else:
    res=json.loads(res.text)
    ... ...

 

标签:返回,调用,鲁棒化,Python,res,阻塞,接口,json,timeout
From: https://www.cnblogs.com/stAr-1/p/16948480.html

相关文章

  • [oeasy]python0024_ 输出时间_time_模块_module_函数_function
    ​ 输出时间回忆上次内容​print​​函数有个默认的​​end参数​​​end参数​​的值可以是任意字符串​​end参数​​的值会输出到结尾位置​​end参数......
  • python实现抽奖程序
    基本思路:从LOL英雄联盟中取4个英雄作为抽奖对象,用Flask框架搭建模拟抽奖程序。一、Flask框架的简单应用二、random随机模块的简单应用,生成随机整数三、python完整实例from......
  • python - 1,2,3,4组成无重复的三位数有多少种组合
    方法一三个循环defnot_repeat(params):#定义一个空列表mlist=[]count=0foriinparams:forjinparams:forminpa......
  • python之路41 前端页面尝试 丑出新高度
    边框p{/*左边*/font-size:48px;border-left-width:5px;border-left-style:dotted;/*点点边框*/border-left-color:#0000ff;}p{......
  • 安装pymysql报错:File "/usr/local/lib/python2.7/site-packages/PyMySQL-1.0.2-py2.7.
     Traceback(mostrecentcalllast):File"log2user-real.py",line49,in<module>db=create_engine("mysql+pymysql://root:{m_pass}@10.157.2.25:8306/l......
  • python模块之sys
    1.简介“sys”即“system”,“系统”之意。该模块提供了一些接口,用于访问Python解释器自身使用和维护的变量,同时模块中还提供了一部分函数,可以与解释器进行比较深度的交......
  • 使用python和sqlite处理数据
    1.处理空行python程序importpandasaspd#导入pandas库data=pd.read_excel("PittsburghBridges.xls")#读取表格数据res=data.dropna(how="all")#清除空白......
  • Pycharm Community 2020.2.3 Python代码设计软件下载
    关注微信公众号【工控羊】或者微信号【gksheep】,微信公众号后台输入数字编号【0014】即可获取下载链接。......
  • python实现自动发送邮件
    一、smtplib自带模块,发送邮件二、email自带模块,包装内容、头部信息等三、QQ邮箱需要生成授权码(相当于密码),163邮箱需要账号和密码四、实战测试:importsmtplibfromemail.mime......
  • python实验报告(第13章)
    一、实验目的1.掌握Pygame的基础知识。二、实验环境python版本:3.10(64-bit)三、实验内容1.实例1  实验结果:  四、实验分析:1.掌握了Pygame的基础知识。......