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

yipeiwu_com6年前Python基础

本文研究的主要是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实现微信自动回复机器人功能

一 简单介绍 wxpy基于itchat,使用了 Web 微信的通讯协议,,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展。实现了微信登录、收发消息、搜索好友、数据统计等功能。...

Python简单格式化时间的方法【strftime函数】

本文实例讲述了Python简单格式化时间的方法,分享给大家供大家参考,具体如下: walker经常用到当前时间和相对时间,用来统计程序执行的效率,简单记一下,便于copy。 >...

解决python 文本过滤和清理问题

问题 某些无聊的脚本小子在Web页面表单中填入了“pýtĥöñ”这样的文本,我们想以某种方式将其清理掉。 解决方案 文本过滤和清理所涵盖的...

新手入门Python编程的8个实用建议

新手入门Python编程的8个实用建议

前言 我们在用Python进行机器学习建模项目的时候,每个人都会有自己的一套项目文件管理的习惯,我自己也有一套方法,是自己曾经踩过的坑踩过的雷总结出来的,现在在这里分享一下给大家,因为很...

python异常和文件处理机制详解

本文实例讲述了python异常和文件处理机制。分享给大家供大家参考,具体如下: 1 异常处理 Python的异常用 try except finally 来处理. 并且except后还可...