zoukankan      html  css  js  c++  java
  • 基础类封装-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))
  • 相关阅读:
    .Net5 之 IHttpContextAccessor注册
    Oracle将两张表的数据插入第三张表且第三张表中不存在
    Git使用基础介绍
    Fork之后如何同步远程仓储和更新
    创建Oracle序列sequence
    Python语言规范
    Entity Framework Core Update Database
    OSI 7层模型(OSI 7 layer model)
    Expression<>, Func<>, Action<>的区别与联系
    .Net Core 项目部署在Linux下, 关闭Shell后项目会自动关闭的解决办法
  • 原文地址:https://www.cnblogs.com/tython/p/12701732.html
Copyright © 2011-2022 走看看