http请求 request失败自动重新尝试代码示例


Posted in Python onJanuary 25, 2018

本文研究的主要是http请求 request失败自动重新尝试的一个例子,具体如下。

需求

最近开发一个项目,要实现的一个场景是对于某个http请求,如果请求失败,需要再自动尝试几次,并记录异常原因便于排查

代码实现

#http连接有问题时候,自动重连
def conn_try_again(function):
 RETRIES = 0
 #重试的次数
 count = {"num": RETRIES}
 def wrapped(*args, **kwargs):
  try:
   return function(*args, **kwargs)
  except Exception, err:
   if count['num'] < 2:
    count['num'] += 1
    return wrapped(*args, **kwargs)
   else:
    raise Exception(err)
 return wrapped

@conn_try_again
def http_request(session, method, url, data, header = header):
  try:
    if method == 'GET':
      r = session.get(url, data = data, headers = header)
      return r
    elif method == 'POST':
      r = session.post(url, data = data, headers = header)
      return r
    else:
      return None
  except Exception as e:
    logging.exception('[online_statistics] http request connection error %s'% e)

总结

以上就是本文关于http请求 request失败自动重新尝试代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
Python通过90行代码搭建一个音乐搜索工具
Jul 29 Python
用yum安装MySQLdb模块的步骤方法
Dec 15 Python
Python与R语言的简要对比
Nov 14 Python
python多进程实现进程间通信实例
Nov 24 Python
删除python pandas.DataFrame 的多重index实例
Jun 08 Python
python 读取.csv文件数据到数组(矩阵)的实例讲解
Jun 14 Python
python 正则表达式贪婪模式与非贪婪模式原理、用法实例分析
Oct 14 Python
python实现WebSocket服务端过程解析
Oct 18 Python
Python中Flask-RESTful编写API接口(小白入门)
Dec 11 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
Dec 19 Python
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
Jan 15 Python
Tensorflow实现在训练好的模型上进行测试
Jan 20 Python
Python实现PS图像调整颜色梯度效果示例
Jan 25 #Python
Python使用requests发送POST请求实例代码
Jan 25 #Python
python使用pandas实现数据分割实例代码
Jan 25 #Python
python实现闹钟定时播放音乐功能
Jan 25 #Python
python实现壁纸批量下载代码实例
Jan 25 #Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
Jan 24 #Python
Python动刷新抢12306火车票的代码(附源码)
Jan 24 #Python
You might like
PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠
2015/09/30 PHP
ThinkPHP框架整合微信支付之JSAPI模式图文详解
2019/04/09 PHP
PhpStorm2020.1 安装 debug - Postman 调用的详细教程
2020/08/17 PHP
对google个性主页的拖拽效果的js的完整注释[转]
2007/04/10 Javascript
读jQuery之八 包装事件对象
2011/06/21 Javascript
ajax异步刷新实现更新数据库
2012/12/03 Javascript
javascript中数组的sort()方法的使用介绍
2013/12/18 Javascript
js常用自定义公共函数汇总
2014/01/15 Javascript
JavaScript的strict模式与with关键字介绍
2014/02/08 Javascript
JS 在指定数组中随机取出N个不重复的数据
2014/06/10 Javascript
JavaScript禁止复制与粘贴的实现代码
2016/05/16 Javascript
AngularJS 自定义指令详解及示例代码
2016/08/17 Javascript
微信小程序 wx:key详细介绍
2016/10/28 Javascript
vue2.0 资源文件assets和static的区别详解
2018/04/08 Javascript
微信小程序getLocation 需要在app.json中声明permission字段
2020/03/03 Javascript
Python Socket编程入门教程
2014/07/11 Python
Python文件右键找不到IDLE打开项解决办法
2015/06/08 Python
python中函数传参详解
2016/07/03 Python
Python实现的简单读写csv文件操作示例
2018/07/12 Python
在python中使用requests 模拟浏览器发送请求数据的方法
2018/12/26 Python
Python实现的企业粉丝抽奖功能示例
2019/07/26 Python
python3实现名片管理系统(控制台版)
2020/11/29 Python
html5唤醒APP小记
2019/03/27 HTML / CSS
HTML5 SEO优化的一些建议
2020/08/27 HTML / CSS
Lentiamo比利时:便宜的隐形眼镜
2020/02/14 全球购物
大学生工作求职信
2014/06/23 职场文书
英语课外活动总结
2014/08/27 职场文书
学习礼仪心得体会
2014/09/01 职场文书
商务代表岗位职责
2015/02/15 职场文书
项目安全员岗位职责
2015/02/15 职场文书
活动主持人开场白
2015/05/28 职场文书
创业计划书之便利店
2019/09/05 职场文书
正确的理解和使用Django信号(Signals)
2021/04/14 Python
Mysql数据库按时间点恢复实战记录
2021/06/30 MySQL
Node-Red实现MySQL数据库连接的方法
2021/08/07 MySQL
Redis集群节点通信过程/原理流程分析
2022/03/18 Redis