MyRequest.py 3.46 KB
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import requests
import json
from commons import common as com
from commons.Logging import Logger
# from requests.adapters import HTTPAdapter HTTPAdapter(max_retries=3)
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
log=Logger()

class myrequest(object):
    
    def __init__(self):
        self.timeout = 60
        self.max_retries = 3
        self.keep_alive = False
        self.ssl_verify=False
        self.proxies=None
        self.allow_redirects=False
      
    def getSession(self,proxies=None):
        if proxies:
            self.proxies={'http': 'http://localhost:8888', 'https': 'http://localhost:8888'}
        se=requests.session()
        url=com.get_api_config('login', 'login01', 'url')
        header=json.loads(com.get_api_config('login', 'login01', 'header'))
        body=com.get_api_config('login', 'login01', 'body')
        r=se.post(url,data=body,headers=header,allow_redirects=False,proxies=self.proxies)
#         assert r.status_code==200,"请检查登录信息"
        print(r.status_code)
        self.se=se
        return self.se
 
    def get(self,url,**kwargs):
        log.info('{0:=^80}'.format('进行GET请求'))
        log.info('请求地址为{};\n'.format(url)) 
        res = self.se.get(url, proxies=self.proxies,**kwargs)
        log.info('响应body为{};'.format(res.json())) 
        return res  
    
    def post(self,url, data=None, json=None, **kwargs):
        log.info('{0:=^80}'.format('进行POST请求')) 
        log.info('请求地址为{};\n 请求body为{};\n'.format(url,data)) 
        res = self.se.post(url, data=data, json=json,proxies=self.proxies,**kwargs)
        log.info('响应body为{};'.format(res.json())) 
        return res

    def put(self,url, data=None, **kwargs):
        res = self.se.put(url, data=data, **kwargs)
        return res
    
    def delete(self,url, **kwargs):
        res = self.se.delete(url, **kwargs)
        return res

    def patch(self,url, data=None, **kwargs):
        res = self.se.patch(url,data=data, **kwargs)
        return res

    def head(self, url, **kwargs):
        res = self.se.patch(url,data=None, **kwargs)
        return res

    def close_session(self):
        self.se.close()

#     def to_request(self,method,url,data=None,is_json=False,**kwargs):  #最后加入**kwargs使可以传headers
#         method = method.upper()
#         if isinstance(data,str):
#             try:
#                 data  = json.load(data)   #'{"mobilephone": "18911114444", "pwd": "123456", "regname": "youxiu"}'
#             except Exception as e:
#                 # print("异常为{}".format(e))
#                 Logger.error("异常为{}".format(e))
#                 data = eval(data)       #'{"mobilephone": '18911114444',1:"4545"}' 非json的字符串
#         if method == 'GET':
#             res = self.one_session.request(method,url,params=data,**kwargs)
#         elif method == 'POST':
#             if is_json:
#                 res = self.one_session.request(method, url, json=data,**kwargs)
#             else:
#                 res = self.one_session.request(method, url, data=data,**kwargs)
#         else:
#             res = None
#             # print("405 METHOD NOT ALLOWED")
#             Logger.error("METHOD NOT ALLOWED".format(method))
#         return res
    
# test=myrequest()
# re=test.getSession(True)
# print(re.headers)