http请求 request失败自动重新尝试代码示例
本文研究的主要是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爬虫入门教程--优雅的HTTP库requests(二)
- Python开发的HTTP库requests详解
- Python爬虫通过替换http request header来欺骗浏览器实现登录功能
- python中requests和https使用简单示例
相关推荐
-
python爬虫入门教程--优雅的HTTP库requests(二)
前言 urllib.urllib2.urllib3.httplib.httplib2 都是和 HTTP 相关的 Python 模块,看名字就觉得很反人类,更糟糕的是这些模块在 Python2 与 Python3 中有很大的差异,如果业务代码要同时兼容 2 和 3,写起来会让人崩溃. 好在,还有一个非常惊艳的 HTTP 库叫 requests,它是 GitHUb 关注数最多的 Python 项目之一,requests 的作者是 Kenneth Reitz 大神. requests 实现了 HTTP
-
python中requests和https使用简单示例
requests 是一个非常小巧全面的库,应用它可以很容易写出与服务器进行交互的程序,今天遇到了一个问题,与服务器交互时,url都是https开头的,都进行了ssl加密处理,这样一来,就不能像之前那样访问http开头的url那样进行处理了. 查了一些资料,可以配置ssl进行验证的文件,方式如下 res = requests.get('https://127.0.0.1:5503/login',cert=('./server.crt', './server.key.unsecure')) 可运行后
-
Python开发的HTTP库requests详解
Requests 是使用 Apache2 Licensed 许可证的 基于Python开发的HTTP 库,其在Python内置模块的基础上进行了高度的封装,从而使得Pythoner进行网络请求时,变得美好了许多,使用Requests可以轻而易举的完成浏览器可有的任何操作. 1. GET请求 # 1.无参数实例 import requests ret = requests.get('https://github.com/timeline.json') print(ret.url) print(re
-
Python爬虫通过替换http request header来欺骗浏览器实现登录功能
以豆瓣为例,访问https://www.douban.com/contacts/list 来查看自己关注的人,要登录才能查看. 如果用requests.get()方法获取这个http,没登录只能抓取回一个登录界面,所以我们要用Python登录网站才能抓取想要的网页. 一个简便的方法就是自己在浏览器上登录好,然后通过下图方法(Chrome为例),找到自己的Cookie和User-Agent,然后发送request时用这复制来的header替换掉待发送的request以达到登录的目的,server端
-
http请求 request失败自动重新尝试代码示例
本文研究的主要是http请求 request失败自动重新尝试的一个例子,具体如下. 需求 最近开发一个项目,要实现的一个场景是对于某个http请求,如果请求失败,需要再自动尝试几次,并记录异常原因便于排查 代码实现 #http连接有问题时候,自动重连 def conn_try_again(function): RETRIES = 0 #重试的次数 count = {"num": RETRIES} def wrapped(*args, **kwargs): try: return fun
-
基于request获取访问者真实IP代码示例
在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了. 如果使用了反向代理软件,将http://192.168.1.110:2046/ 的URL反向代理为http://www.xxx.com/ 的URL时,用request.getRemoteAddr()方法获取的IP地址是:127.0.0.1 或 192.168.1.110,而并不是客户端的
-
RestTemplate请求失败自动重启机制精讲
目录 前言 一.SpringRetry配置生效 二.使用案例 三.测试结果 前言 本文是精讲RestTemplate第8篇,前篇的blog访问地址如下: RestTemplate在Spring或非Spring环境下使用精讲 RestTemplate实现多种底层HTTP客户端类库的切换用法 RestTemplate发送HTTP GET请求使用方法详解 RestTemplate发送HTTP POST请求使用方法详解 RestTemplate的DELETE及PUT等请求方法使用精讲 RestTempl
-
模拟HTTP请求实现网页自动操作及数据采集的方法
前言 网页可分为信息提供和业务操作类,信息提供如新闻.股票行情之类的网站.业务操作如网上营业厅.OA之类的.当然,也有很多网站同时具有这两种性质,像微博.豆瓣.淘宝这类网站,既提供信息,也实现某些业务. 普通上网方式一般都是手动操作(这个不需要解释:D).但有时候人工手动操作的方式可能就无法胜任了,如爬取网络上大量数据,实时监测某个页面的变化,批量操作业务(如批量发微博,批量淘宝购物).刷单等.由于操作量大,而且都是重复的操作,人工操作效率低下,且易出错.这时候就可以使用软件来自动操作了. 本人
-
微信小程序 http请求封装详解及实例代码
微信小程序 http请求封装 示例代码 wx.request({ url: 'test.php', //仅为示例,并非真实的接口地址 data: { x: '' , y: '' }, method:'POST', header: { 'content-type': 'application/json' }, success: function(res) { console.log(res.data) }, fail: function( res ) { fail( res ); } }) 以上
-
django 使用 request 获取浏览器发送的参数示例代码
获取数据(四种方式) 1. url: 需要正则去匹配 url(r'^index/(num)/$',view.index) 匹配到的参数会自动传入对应的视图函数 也可以给匹配到的参数起名字?P<num> url(r'^index/(?P<num1>\d*)(?P<num2>\w*)$',) 使用url传参的时候,要么都使用位置参数,要么都使用给参数起名字的方式 也可以通过request.path获取到url然后获取相应的参数. 如访问127.0.0.1:8000/
-
微信小程序 http请求封装详解及实例代码
微信小程序 http请求封装 示例代码 wx.request({ url: 'test.php', //仅为示例,并非真实的接口地址 data: { x: '' , y: '' }, method:'POST', header: { 'content-type': 'application/json' }, success: function(res) { console.log(res.data) }, fail: function( res ) { fail( res ); } }) 以上
-
PHP实现自动发送邮件功能代码(qq 邮箱)
最近做一个邮箱验证的功能,研究了一会,搞定了邮件的自动发送.下面用qq邮箱作为演示,一步一步来解释: 代码下载地址 首先,就是做到邮件的发送,代码如下: <?PHP //邮件发送 require './mailer/class.phpmailer.php'; require './mailer/class.smtp.php'; date_default_timezone_set('PRC');//设置邮件发送的时间,如果不设置,则会显示其他区的时间 $mail = new PHPMailer()
-
使用python实现baidu hi自动登录的代码
复制代码 代码如下: # _*_ coding:utf-8 _*_# name login_baidu.pyimport urllib,urllib2,httplib,cookielibdef auto_login_hi(url,name,pwd): url_hi="http://passport.baidu.com/?login" #设置cookie cookie=cookielib.CookieJar() cj=urllib2.HTTPCookieProce
-
Python+tkinter模拟“记住我”自动登录实例代码
本文分享的代码主要是通过Python+tkinter模拟"记住我"自动登录的功能,具体介绍如下. 基本思路:如果某次登录成功,则创建临时文件记录有关信息,每次启动程序时尝试自动获取上次登录成功的信息并自动编写.本文主要演示思路,可根据实际系统中的需要进行改写,例如读取数据库并验证用户名和密码是否正确.对用户名和密码进行本地加密存储等等. import tkinter import tkinter.messagebox import os import os.path # 获取Windo
随机推荐
- 解决CSS中 display 与 visibility 的区别
- FCKEditor 表单提交时运行的代码
- 关于IE11修改User-agent不再支持document.all等
- 要慎用mysql的enum字段的原因
- Java 8 新特性终极版指南详解
- Java中区别.toString() ,(String),valueOf()方法
- php实现数组中索引关联数据转换成json对象的方法
- 九个你必须知道而且又很好用的php函数和特点
- 使用Python实现简单的服务器功能
- C#中按引用传递与按值传递的区别,以及ref与out关键字的用法详解
- 通过C#实现发送自定义的html格式邮件
- Node.js中使用mongoose操作mongodb数据库的方法
- phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
- PowerShell Out-File向只读文件写入内容的方法
- 用C语言进行最基本的socket编程
- MySQ登录提示ERROR 1045 (28000)错误的解决方法
- jquery滚动到顶部底部代码
- jQuery实现菜单栏导航效果
- js动态获取子复选项并设计全选及提交的实现方法
- Android 中FloatingActionButton(悬浮按钮)实例详解