python--MyRequest请求模块封装

Posted 冒泡泡de可乐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python--MyRequest请求模块封装相关的知识,希望对你有一定的参考价值。

MyRequest

import requests
import nnlog

class MyRequest:
    log_file_name = MyRequest.log  #日志文件名
    time_out = 10 #请求超时时间
    def __init__(self,url,data=None,headers=None,file=None):
        self.url = url
        self.data = data
        self.headers = headers
        self.files = file

    def post(self):
        try:
            req = requests.post(self.url,data=self.data,headers=self.headers,files=self.files,timeout=self.time_out)
        except Exception as e:  #请求报错
            res = {status:0,err_msg:e.args}  #0代表请求失败
        else:   #请求成功
            try:
                res = {status:1,data:req.json()}   #1 返回json类型数据
            except Exception as e:
                res ={status:2,data:req.text}  #2返回非json类型数据
        log_str = url: %s 请求方式:post data: %s, 返回数据:%s%(self.url,self.data,res)
        self.write_log(log_str)
        return res

    def get(self):
        try:
            req = requests.get(self.url, params=self.data, headers=self.headers,timeout=self.time_out)
        except Exception as e:  # 请求报错
            res = {status: 0, err_msg: e.args}  # 0代表请求失败
        else:  # 请求成功
            try:
                res = {status: 1, data: req.json()}  # 1 返回json类型数据
            except Exception as e:
                res = {status: 2, data: req.text}  # 2返回非json类型数据
        log_str = url: %s 请求方式:get data: %s, 返回数据:%s % (self.url, self.data, res)
        self.write_log(log_str)
        return res

    @classmethod
    def write_log(cls,content):
        log = nnlog.Logger(cls.log_file_name)
        log.debug(content)


url =https://www.baidu.com
myrequest = MyRequest(url)
myrequest.post()

 


以上是关于python--MyRequest请求模块封装的主要内容,如果未能解决你的问题,请参考以下文章

Android实际开发之网络请求组件的封装(OkHttp为核心)

vue复习大法之网络模块封装

network/request.js网络请求模块封装

vue项目常用之二:封装 axios 请求模块

request请求的get/post的模块的封装

前端学习(3000):vue+element今日头条管理--封装请求模块