#!/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库封装的更多相关文章

  1. 接口自动化--requests库封装

    前言 不管是自动化大佬还是自动化小白,都知道我们用python写接口自动化测试肯定是要用requests库来封装请求类的,下面就简单介绍下requests这个库 安装 一般都是直接采用pip命令安装: ...

  2. Python接口测试之封装requests

    首先安装requests库: pip install requests test_requests.py 首先在TestRequest类中封装get与post方法, import requests i ...

  3. 使用libzplay库封装一个音频类

    装载请说明原地址,谢谢~~      前两天我已经封装好一个duilib中使用的webkit内核的浏览器控件和一个基于vlc的用于播放视频的视频控件,这两个控件可以分别用在放酷狗播放器的乐库功能和MV ...

  4. 【Node.js 自己封装的库 http_parse, libuv】

    [Node.js 自己封装的库 http_parse, libuv] Node.js 介绍:一个网络框架,更多:http://www.oschina.net/p/nodejs 官网:http://no ...

  5. 使用boost.python封装C++库

    使用boost.python封装C++库 C++以高性能著称,但是编写较为复杂.而简洁是Python的强项.如果能珠联璧合,就能发挥两家之长.本文尝试用boost库的python模块封装C++ 前期准 ...

  6. 使用delphi 开发多层应用(十六)使用XMLRPC 实现basic4android 远程调用RTC服务(讲述了RTC的特点,其底层通讯协议是自己封装SOCK 库,与kbmmw 的适合场合不完全一样)

        RealThinClient (以下简称RTC) 也是一款delphi 多层开发的框架,由于其底层通讯协议是自己封装SOCK 库,抛弃了 大家诟病的indy,因此表现的非常稳定,效率也非常高, ...

  7. python学习笔记:安装boost python库以及使用boost.python库封装

    学习是一个累积的过程.在这个过程中,我们不仅要学习新的知识,还需要将以前学到的知识进行回顾总结. 前面讲述了Python使用ctypes直接调用动态库和使用Python的C语言API封装C函数, C+ ...

  8. python requests函数封装方法

    python  requests函数封装方法 上代码 import requests import json """ 封装request请求, 1.post:my_pos ...

  9. STM32嵌入式开发学习笔记(二):将功能封装为库文件

    将所有的函数都堆在main.c文件里不是好的选择,庞大的代码文件会是你维护的障碍,明智的做法是,一种功能封装到一个库文件里. 库文件就是你代码开始部分写的#include<xxxx.h>里 ...

随机推荐

  1. C++ 理解类 和 类中的public、protected、private

    我们要明确,不只是C++有类,很多语言也会用到类,因为现在很多都是面向对象编程... 在c++中,关于类的理解,个人理解是这样的,具有共同属性的一个集合被称为类, 比如说人这个集合,具有性别,年龄,出 ...

  2. 建议8:恰当选用if和switch

    相对来说下面几种情况更适合switch结构 枚举表达式的值.这种枚举是可以期望的,平行逻辑关系的 表达式的值具有离散性,不具有线性的非连续的区间值 表达式的值是固定的,不是动态变化的 表达式的值是有限 ...

  3. flex 居中

    display: flex; justify-content: space-between; align-items: center;

  4. Python基础 | 关于“循环”那些事

    目录 for 循环 list range enumerate zip while 循环 while相当于if时 while充当for和if的混合体 泛循环 列表解析 map 迭代器 生成器 循环的跳出 ...

  5. springBoot mybatis mysql pagehelper layui 分页

    <!-- 加入 pagehelper 分页插件 jar包--><dependency> <groupId>com.github.pagehelper</gro ...

  6. Web_XML

    第1章 XML简介 “当 XML(扩展标记语言)于 1998 年 2 月被引入软件工业界时,它给整个行业带来了一场风暴.有史以来第一次,这个世界拥有了一种用来结构化文档和数据的通用且适应性强的格式,它 ...

  7. Linux开机启动程序rc.local

    目录 1./etc/rc.local是/etc/rc.d/rc.local的软链接 2.rc.local文件的原始内容 3.rc.local文件的配置 4.应用经验 5.版权声明 在CentOS7中, ...

  8. Linux上安装配置Keepalived

    Linux上安装配置Keepalived 1.下载 自行去Keepalived官网进行下载,也可以通过如下链接进行下载2.0.18版本(目前的稳定版) 链接:https://pan.baidu.com ...

  9. python学习之BeautifulSoup模块爬图

    BeautifulSoup模块爬图学习HTML文本解析标签定位网上教程多是爬mzitu,此网站反爬限制多了.随意找了个网址,解析速度有些慢.脚本流程:首页获取总页数-->拼接每页URL--> ...

  10. 洛谷P1003 铺地毯 模拟

    这一题就是一个很普通的模拟,每次输入的时候存储四个角的值 把四个角的横纵坐标存储在一排.然后在倒序遍历一遍,查找的时候就看所要查找的坐标在不在这个范围内,如果找到了就标记一下再输出,如果没有找到就输出 ...