zoukankan      html  css  js  c++  java
  • 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("无您需要的格式")
  • 相关阅读:
    HihoCoder 1638 : 小Hi的天平 (2-sat+并查集)
    阿里云安全肖力:云上数据安全体系建设的六要素
    MaxCompute客户端(odpscmd)在windows命令行下查询中文乱码问题处理实践
    序列化方案选型对比
    亚洲唯一,阿里云SLB位列Gartner全球网络负载均衡市场前五
    阿里云OSS同城冗余存储技术解析
    OSS跨同城3AZ重磅发布,构造全面数据保护体系
    阿里云OSS同城冗余存储正式商业化,提供云上同城容灾能力
    云原生应用 Kubernetes 监控与弹性实践
    GIAC2019 演讲精选 | 面向未来的黑科技——UI2CODE闲鱼基于图片生成跨端代码
  • 原文地址:https://www.cnblogs.com/xiaokuangnvhai/p/11164343.html
Copyright © 2011-2022 走看看