基础类封装-Requests库封装

 1 #!/usr/bin/env python3
 2 # -*- coding: utf-8 -*-
 3 # @Time    : 2020/03/18 23:37
 4 # @Author  : Tang Yiwei
 5 # @Email   : 892398433@qq.com
 6 # @File    : httprun.py
 7 # @Software: PyCharm
 8 
 9 import requests
10 from lib.logger import logger
11 from requests.auth import HTTPBasicAuth
12 from requests.exceptions import ReadTimeout,HTTPError,RequestException
13 try:
14     from requests.packages import urllib3
15     urllib3.disable_warnings()
16 except:
17     import logging
18     logging.captureWarnings(True)
19 
20 class HttpRun:
21 
22     @staticmethod
23     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):
24         """
25        :param method:请求的方式,get、post等等
26        :param url: 请求的地址 http://xxxx:post
27        :param data:传递的参数
28        :param headers:传递的请求头
29        :param files:上传的文件,例如files={'file':open('favicon.ico','rb')},传二进制文件
30        :param cookie:请求时传递的cookie值
31        :param verify:是否忽略SSLError,False为忽略,True为显示
32        :param cert:指定证书文件,需要有crt和key文件,并且指定他们的路径,例如cert=('/path/server.crt','/path/key')
33        :param proxies:设置代理,例如proies = {"http":"http://10.10.1.10:3128","https":"http://10.10.1.10:1080"}
34        :param timeout:设置请求的超时时间,连接和读取的总时长,例如timeout=1
35        :param auth:用户认证,auth=HTTPBasicAuth('username','password')
36        :return:
37         """
38         try:
39             if method.strip().lower() == 'get' or method == None:
40                 res = requests.get(url=url,params=data,headers=headers,cookies=cookies,verify=verify,cert=cert,proxies=proxies,timeout=timeout,auth=auth)
41             elif method.strip().lower() == 'post':
42                 res = requests.post(url=url,data=data,headers=headers,cookies=cookies,files=files,verify=verify,cert=cert,proxies=proxies,timeout=timeout,auth=auth)
43             else:
44                 raise Exception("Unsupported requests")
45             return res
46         except ReadTimeout as e:
47             logger.logger.exception("time out,{0}".format(e))
48         except HTTPError as e:
49             logger.logger.exception("http error,{0}".format(e))
50         except RequestException as e:
51             logger.logger.exception("requests error,{0}".format(e))
52         except Exception as e:
53             logger.logger.exception("other error,{0}".format(e))
原文地址:https://www.cnblogs.com/tython/p/12701732.html