首页 > Web开发 > 详细

Http类

时间:2019-09-11 16:30:35      阅读:71      评论:0      收藏:0      [点我收藏+]
#coding:utf-8
from urllib.error import URLError

import requests
import common.Log as Log
import ssl
import urllib
import os
‘‘‘
@author: jinff
@license: (C) Copyright 2016-2020, 中国制造
@contact:
@file: HttpUtil.py
@time: 2018/10/25 11:05
@desc: HttP工具类
‘‘‘

log = Log.getLogger()


requests.packages.urllib3.disable_warnings()
requests.adapters.DEFAULT_RETRIES = 5
session = requests.Session()
session.keep_alive = False
#session.proxies = {"https": "111.231.140.109:8888", "https": "111.231.140.109:8888" }




def doPost(**kwargs):


    if kwargs["headers"] is None:
        kwargs["headers"]= {Content-Type: application/json;charset=UTF-8}


    if "data" in kwargs:
        body=kwargs["data"]

        # data参数校验
        if isinstance(kwargs["data"], str):
            kwargs["data"] = kwargs["data"].encode(utf-8)

        elif isinstance(kwargs["data"], bytes):
            pass
        else:

            raise TypeError("data类型错误:" + kwargs["data"])
    elif "json" in kwargs:
        body=kwargs["json"]
    else:
        body=None



    kwargs["verify"]=False

    log.debug("进入请求post方法:")
    log.debug("url= %s\nbody=%s\nheaders=%s" %(kwargs[url],body,kwargs["headers"]))
 # 如果返回ssl.CertificateError错误,可以post请求中增加参数 context=context
    res=session.post(**kwargs)

    return res


def doGet(url,paras,headers,**kwargs):

    log.debug("进入请求Get方法:")
    log.debug("url= %s\nparas=%s\nheaders=%s" %(url,paras,headers))
    if paras is None:
        paras=None
    res=session.get(url=url,params=paras,headers=headers,verify=False,**kwargs)

    return res
def download(url,filename):

    # 2. 表示忽略未经核实的SSL证书认证
    context = ssl._create_unverified_context()
    request = urllib.request.Request(url)
    response = urllib.request.urlopen(request, context=context)
    content = response.read().decode(utf-8)
    try:
        with open(filename, w,encoding=UTF-8 ) as f:
             f.write(content)
    except IOError:
        log.error("ERROR: 写文件失败! fileName = ",filename)





 # @staticmethod
 # def doPost(url, jsonBody, headers):
 #     session = requests.Session()
 #     log.info("进入请求post方法:")
 #     log.info("url= %s\nbody=%s\nheaders=%s" % (url, jsonBody, headers))
 #
 #     res = session.post(url=url, data=jsonBody.encode(‘utf-8‘), headers=headers, verify=False)
 #
 #     return res

 

Http类

原文:https://www.cnblogs.com/peak911/p/11506790.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!