• requests二次封装_捕获异常


    1、封装类无构造函数,实例化类不需传参,在使用对应方法时进行传参

    import  requests
    import  nnlog
    import  time
    
    class MyRequests:
        #类实例方法--post
        def post_method(self,url,data=None,header=None,file=None,format=1): #类实例方法带传参
            try: #post请求异常捕获
                self.result=requests.post(url,data,headers=header,files=file)
            except Exception as error_info:
                self.write_log(error_info) #如果有异常调用日志模块写入日志文件
            else:
                return self.format_result(format) #如果没有错误根据用户传入的格式ID,返回对应得格式
        def get_method(self,url,data=None,header=None,file=None,format=1): #类实例方法带传参
            try: #get请求异常捕获
                self.result= requests.get(url,data,headers=header,files=file)
            except Exception as error_info:
                self.write_log(error_info) #如果有异常调用日志模块写入日志文件
            else:
                return  self.format_result(format) #如果没有错误根据用户传入的格式ID,返回对应得格式
    
        @classmethod  #类方法
        def write_log(cls,error_info):
            log = nnlog.Logger('test.log', level='info', backCount=5, when='d') #实例化日志类
            log.info(error_info) #调用日志的信息级别方法
            time.sleep(4)
    
        def format_result(self,format): #结果返回类型类实例方法
            if  format==1:
                return  self.result.text   #返回字符串类型
            elif format==2:
                return  self.result.content.decode('utf-8') #返回byte类型方法
            elif format==3:
                return self.result.json() #返回字典类型
            else:
                return print("无您需要的格式") #输入的类型错误

    2、封装类有构造函数,实例化类需传参,在使用对应方法时不传参直接调用方法

    import  requests
    import  nnlog
    import  time
    
    class Requests:
        #构造函数,实例化时需要把传参传入
        def __init__(self,url,data=None,header=None,file=None,format=1):
                self.url = url
                self.data = data
                self.header = header
                self.file = file
                self.format=format
    
        def post_method(self): #post类实例方法
            try: #post请求异常捕获
               self.result=requests.post(self.url,self.data,headers=self.header,files=self.file)
            except Exception as error_info:
                self.write_log(error_info)  #如果有异常调用日志模块写入日志文件
            else:
                return  self.format_result()#如果没有错误根据用户传入的格式ID,返回对应得格式
    
        def get_method(self):
            try:#get请求异常捕获
                self.result= requests.get(self.url, self.data, headers=self.header, files=self.file)
            except Exception as error_info:
                self.write_log(error_info) #如果有异常调用日志模块写入日志文件
            else:
                return self.format_result() #如果没有错误根据用户传入的格式ID,返回对应得格式
    
        @classmethod
        def write_log(cls,error_info):
            log = nnlog.Logger('test.log', level='info', backCount=5, when='d')#实例化日志类
            log.info(error_info)#调用日志的信息级别方法
            time.sleep(4)
    
        def format_result(self): #结果返回类型类实例方法
            if self.format==1:
                return  self.result.text #返回字符串类型
            elif self.format==2:
                return  self.result.content.decode('utf-8')#返回byte类型方法
            elif self.format==3:
                return self.result.json() #返回字典类型
            else:
                return print("无您需要的格式")
  • 相关阅读:
    List
    集合
    layui树状组件tree回显如果子节点选中,当前主节点下所有元素都会选中问题修复
    layui富文本编辑器提交时无法获取到值
    thinkphp6+layui富文本编辑器页面回显显示HTML标签
    layui获取树形菜单所有选中的值
    php7将二维数组转为树状数组
    jq处理img标签找不到图片,显示指定图片
    thinkphp6根据访问设备不同访问不同模块
    layui怎么进入页面监听select的值然后重新渲染页面
  • 原文地址:https://www.cnblogs.com/xiaokuangnvhai/p/11164343.html
Copyright © 2020-2023  润新知