基础类封装-Requests库封装
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Time : 2020/03/18 23:37
# @Author : Tang Yiwei
# @Email : 892398433@qq.com
# @File : httprun.py
# @Software: PyCharm import requests
from lib.logger import logger
from requests.auth import HTTPBasicAuth
from requests.exceptions import ReadTimeout,HTTPError,RequestException
try:
from requests.packages import urllib3
urllib3.disable_warnings()
except:
import logging
logging.captureWarnings(True) class HttpRun: @staticmethod
def http_run(method=None,url=None,data=None,headers=None,files=None,cookies=None,verify=None,cert=None,proxies=None,timeout=20,auth=None):
"""
:param method:请求的方式,get、post等等
:param url: 请求的地址 http://xxxx:post
:param data:传递的参数
:param headers:传递的请求头
:param files:上传的文件,例如files={'file':open('favicon.ico','rb')},传二进制文件
:param cookie:请求时传递的cookie值
:param verify:是否忽略SSLError,False为忽略,True为显示
:param cert:指定证书文件,需要有crt和key文件,并且指定他们的路径,例如cert=('/path/server.crt','/path/key')
:param proxies:设置代理,例如proies = {"http":"http://10.10.1.10:3128","https":"http://10.10.1.10:1080"}
:param timeout:设置请求的超时时间,连接和读取的总时长,例如timeout=1
:param auth:用户认证,auth=HTTPBasicAuth('username','password')
:return:
"""
try:
if method.strip().lower() == 'get' or method == None:
res = requests.get(url=url,params=data,headers=headers,cookies=cookies,verify=verify,cert=cert,proxies=proxies,timeout=timeout,auth=auth)
elif method.strip().lower() == 'post':
res = requests.post(url=url,data=data,headers=headers,cookies=cookies,files=files,verify=verify,cert=cert,proxies=proxies,timeout=timeout,auth=auth)
else:
raise Exception("Unsupported requests")
return res
except ReadTimeout as e:
logger.logger.exception("time out,{0}".format(e))
except HTTPError as e:
logger.logger.exception("http error,{0}".format(e))
except RequestException as e:
logger.logger.exception("requests error,{0}".format(e))
except Exception as e:
logger.logger.exception("other error,{0}".format(e))
基础类封装-Requests库封装的更多相关文章
- 接口自动化--requests库封装
前言 不管是自动化大佬还是自动化小白,都知道我们用python写接口自动化测试肯定是要用requests库来封装请求类的,下面就简单介绍下requests这个库 安装 一般都是直接采用pip命令安装: ...
- Python接口测试之封装requests
首先安装requests库: pip install requests test_requests.py 首先在TestRequest类中封装get与post方法, import requests i ...
- 使用libzplay库封装一个音频类
装载请说明原地址,谢谢~~ 前两天我已经封装好一个duilib中使用的webkit内核的浏览器控件和一个基于vlc的用于播放视频的视频控件,这两个控件可以分别用在放酷狗播放器的乐库功能和MV ...
- 【Node.js 自己封装的库 http_parse, libuv】
[Node.js 自己封装的库 http_parse, libuv] Node.js 介绍:一个网络框架,更多:http://www.oschina.net/p/nodejs 官网:http://no ...
- 使用boost.python封装C++库
使用boost.python封装C++库 C++以高性能著称,但是编写较为复杂.而简洁是Python的强项.如果能珠联璧合,就能发挥两家之长.本文尝试用boost库的python模块封装C++ 前期准 ...
- 使用delphi 开发多层应用(十六)使用XMLRPC 实现basic4android 远程调用RTC服务(讲述了RTC的特点,其底层通讯协议是自己封装SOCK 库,与kbmmw 的适合场合不完全一样)
RealThinClient (以下简称RTC) 也是一款delphi 多层开发的框架,由于其底层通讯协议是自己封装SOCK 库,抛弃了 大家诟病的indy,因此表现的非常稳定,效率也非常高, ...
- python学习笔记:安装boost python库以及使用boost.python库封装
学习是一个累积的过程.在这个过程中,我们不仅要学习新的知识,还需要将以前学到的知识进行回顾总结. 前面讲述了Python使用ctypes直接调用动态库和使用Python的C语言API封装C函数, C+ ...
- python requests函数封装方法
python requests函数封装方法 上代码 import requests import json """ 封装request请求, 1.post:my_pos ...
- STM32嵌入式开发学习笔记(二):将功能封装为库文件
将所有的函数都堆在main.c文件里不是好的选择,庞大的代码文件会是你维护的障碍,明智的做法是,一种功能封装到一个库文件里. 库文件就是你代码开始部分写的#include<xxxx.h>里 ...
随机推荐
- 再说scss
1. CSS预处理器 定义了一种新的专门的编程语言,编译后成正常的CSS文件.为CSS增加一些编程的特性,无需考虑浏览器的兼容问题,让CSS更加简洁,适应性更强,可读性更佳,更易于代码的维护等诸多好处 ...
- 问不倒的HTTP协议
一.HTTP简介 1.HTTP HTTP:超文本传输协议,是一种通信协议:允许超文本标记文档从Web服务器传送到客户端的浏览器中. 简单:传输html文件的协议. Web:是一种基于超文本和HTML的 ...
- 【Weiss】【第03章】练习3.7:有序多项式相乘
[练习3.7] 编写一个函数将两个多项式相乘,用一个链表实现.你必须保证输出的多项式按幂次排列,并且任意幂次最多只有一项. a.给出以O(M2N2)时间求解该问题的算法. b.写一个以O(M2N)时间 ...
- java之AQS和显式锁
本次内容主要介绍AQS.AQS的设计及使用.ReentrantLock.ReentrantReadWriteLock以及手写一个可重入独占锁 1.什么是AQS? AQS,队列同步器AbstractQu ...
- ChaosTool,iOS添加垃圾代码工具,代码混淆工具,代码生成器,史上最好用的垃圾代码添加工具,自己开发的小工具
最近在H5游戏项目中需要添加垃圾代码作混淆,提高过审机率.手动添加太费时费力,在网上并没有找到合适的比较好的工具,就自己动手写了一个垃圾代码添加工具,命名为ChaosTool. 扣扣交流群:81171 ...
- jenkins-gitlab-harbor-ceph基于Kubernetes的CI/CD运用(四)
前景提要 jenkins与gitlab结合,实现代码自动拉取:https://www.cnblogs.com/zisefeizhu/p/12548662.html jenkins与kubernetes ...
- JDBC(三)----JDBC控制事务
## JDBC控制事务 1.事务:一个包含多个步骤的业务操作.如果这个业务员操作被事务管理,则这多个步骤要么同时成功,要么同时失败. 2.操作: 1.开启事务 2.提交事务 3.回滚事务 3.使用C ...
- [二分] Codefoces Anton and Making Potions
Anton and Making Potions time limit per test 4 seconds memory limit per test 256 megabytes input sta ...
- Activiti入门案例
一.流程定义 Activiti-Designer 使用 Palette(画板) 在eclipse 或 idea 中安装activiti-designer 插件即可使用,画板中包括以下结点: Conne ...
- PyTorch1.2.0版本来啦!居然还有全套视频!让你快速熟练掌握深度学习框架!
[翻到文末, 还能让你看尽CV和NLP完整技术路径以及前沿+经典论文篇目,助你构建深度学习知识框架] 今年8月!PyTorch 1.2.0 版本来啦!! 据我们了解,在学术领域,特别是CV/NLP方向 ...