首页 > 其他分享 >封装一个request请求

封装一个request请求

时间:2022-11-11 22:01:21浏览次数:37  
标签:__ 封装 请求 url self request json param token

代码如下:

import json

import requests
from loguru import logger


class HttpRequests:

    def __init__(self):
       #实例化一个session类
       self.s = requests.Session()
       # #设置全局通用的请求头
       self.s.headers = {"Content-Type":"application/json"}

    def send_req(self,method,url,data=None, token=None, **kwargs):
        """
        :param method:方法
        :param url:请求的url
        :param data: 字符串类型
        :param token:
        :param kwargs:
        :return:
        """
        logger.info(f"请求url为:{url}")
        logger.info(f"请求method为:{method}")
        logger.info(f"请求datas为:{data}")
        if method.upper() == "GET":
            resp = self.s.get(url, params=data, **kwargs)
        else:
            resp = self.s.request(method, url, data=data, **kwargs)
        logger.info(f"http响应状态码为:{resp.status_code}")
        logger.info(f"响应body为:\n{resp.text}")
        return resp

    def __header(self, token=None):
        if token:
            # self.s.headers["Authorization"] = token
            self.s.headers.update({"Authorization": token})
        logger.info(f"请求headers为:{self.s.headers}")


if __name__ == '__main__':
    url = "****************ip*************/login"
    param = {"pwd": "12345678","user": "陈然"}
    # token="eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjozLCJ1c2VybmFtZSI6ImNoZW5yYW4iLCJleHAiOjE2MDA5MTA3NjEsImVtYWlsIjoiY3IxMDQ5MTYyMjg2QDE2My5jb20ifQ.Htpfw60gVioi7kyh9Vd4MLVDl_rlgCZJrliM4Ar1ZAg"
    # headers={'Authorization':"JWT"+token}
    res = HttpRequests().send_req("post",url,json.dumps(param))
    #data数据格式的调用需要区分是字典还是json,如果是字典就直接调用【param】,如果是json就需要json.dumps()调用
    print(res.json())

 

标签:__,封装,请求,url,self,request,json,param,token
From: https://www.cnblogs.com/crdhm12040605/p/16882157.html

相关文章

  • SpringMVC-解析@RequestParam参数
    InvocableHandlerMethod.invokeForRequest执行请求时会调用InvocableHandlerMethod.getMethodArgumentValues解析方法参数。InvocableHandlerMethod.getMethodArgumentVal......
  • vue框架跨域请求之axios
    1、打开hbuilderx,【文件】==》【新建】==》【项目】,创建vue项目。   2、创建后的vue项目结构如下所示,打开【package.json】配置文件,添加axios相关依赖。   ......
  • post请求传formdata格式
    constformData=newFormData();fileList.value.forEach(file=>{formData.append('multipartFile',file);});formData.append(......
  • JS 封装ajax
    functionAjax(url,params){returnnewPromise((resolve,reject)=>{$.ajax({url:url,......
  • ASEMI肖特基二极管MBR10200CT参数,MBR10200CT封装
    编辑-ZASEMI肖特基二极管MBR10200CT参数:型号:MBR10200CT最大重复峰值反向电压(VRRM):200V最大平均正向整流输出电流(IF):10A峰值正向浪涌电流(IFSM):150A每个元件的典型热阻(ReJA):2℃/W......
  • jmeter压力测试 设置一秒发送一次请求,一秒两次请求
    使用jmeter进行压力测试,测试情况有1.一秒钟投1次请求(一个线程)持续30分钟的情况2.一秒钟发送2次请求(两个线程) 持续30分钟的情况下面说一下如何使用jmeter测试这两种......
  • 封装好的返回操作消息提醒工具类
    packagecom.ruoyi.common.core.domain;importcom.baomidou.mybatisplus.core.metadata.IPage;importcom.ruoyi.common.utils.StringUtils;importjava.util.Collec......
  • [ Linux ] 缓冲区的理解 以及简易模拟实现封装C标准库
    在输出重定向的时候为什么必须fflush(stdout)才能将内容刷新到指定文件呢?我们当时回答是因为存在缓冲区。那么本篇文章我们将重点了解认识一下缓冲区。0.什么是缓冲区?缓冲区......
  • 问题:父组件mounted发送异步请求,子组件props接收?
    极有可能是因为,父组件mounted异步的请求,在子组件中被v-for控制,所以导致了,父组件mounted会先执行 父组件mounted中发送一个异步请求,然后发送给子组件子组件通过props接收......
  • curl请求apollo api获取服务详细信息
    1、提交api开放接口 2、截取lb服务名称curl-s-H"Authorization:7b9e9852e10e5c7e52f7a80e09ee0a3e17a6815b"-H"Content-Type:application/json;charset=UTF-8"......