首页 > 其他分享 >postman Pre-request Script(预处理)post请求获取sign(接口鉴权)

postman Pre-request Script(预处理)post请求获取sign(接口鉴权)

时间:2023-11-02 17:45:47浏览次数:24  
标签:Pre 请求 Script 接口 sign post paramStr 鉴权 postman

背景

  请求业务接口时需要先调用auth应用的鉴权接口获取sign(类似其他系统登录接口返回的token),否则会提示:鉴权失败,从而导致业务接口无法使用。获取sign接口请求参数为业务接口的请求参数,所以Pre-request Script(预处理)post请求内的body为变量。

一、Pre-request Script(预处理)简介

  预处理是指在发送HTTP请求之前,先执行一段脚本用于预处理请求,用来处理和获取所需要的数据。

二、Pre-request Script(预处理)使用

  1、获取当前时间 

    //获取当前时间     const moment = require('moment');     var date =moment().format('YYYY-MM-DD HH:mm:ss');     pm.globals.set('newdate',date);     console.log(date);     输出值:

    

  2、获取时间戳

    //获取时间戳     var tidtime =Math.round(new Date().getTime());     pm.globals.set('newtime',tidtime);     console.log(tidtime);     输出值:  

    

三、Pre-request Script(预处理)发送post请求

  1、定义post请求url

   //鉴权地址

   const getSignUrl = 'xxx/sign/getSign';

  2、获取业务接口的参数,做为鉴权接口的参数

   // 获取请求体中的数据,字典    let raw = pm.request.body.raw;    // 把请求参数转成JSON    let requestBody = JSON.parse(raw);    // 请求参数拼接    let paramStr = {};    paramStr ['appId'] = requestBody.appId;    paramStr ['certiId'] = requestBody.certiId;    paramStr ['token'] = requestBody.token;    paramStr ['tid'] = requestBody.tid;    paramStr ['data'] = requestBody.data;    paramStr ['date'] = date;    console.log(paramStr);   3、鉴权接口实际请求参数   const getSignRequestData = {         url: getSignUrl,         method: 'POST',         header: {             'Content-Type': 'application/json'             },         body: {             mode: 'raw',             raw:JSON.stringify(paramStr)             }           };

  4、发送post请求

  //发送post请求   pm.sendRequest(getSignRequestData, function (err, response) {       if (err) {           console.error(err);           return;           }   //输出鉴权接口返回值   console.log(response.json());   
  if (response.json().payload.status = "true") {   // 如果请求成功获取sign值   pm.environment.set('sign',response.json().payload.sign);     }   });   5、业务接口使用获取到的sign值   引用方式 —— {{sign}}

  

结论

  经过以上操作,业务接口可以直接发送post请求,每次请求的时间和sign值在Pre-request Script(预处理)内都会预先处理好。

 

 

 

    

  

标签:Pre,请求,Script,接口,sign,post,paramStr,鉴权,postman
From: https://www.cnblogs.com/chen-cherry/p/17805882.html

相关文章

  • 即构音视频 Express Flutter SDK 全面支持空安全
    Flutter是一套移动UI框架,可以快速在iOS、Android上构建高质量的原生用户界面。作为其官方语言Dart是类型安全的,当开发者获取变量的时候,编译器可以保证变量的类型,但类型安全并不保证获取的变量不是null。在GitHub上有非常多因为null导致Dart代码出现异常的issue,为了从......
  • 【python】-bash: /usr/local/bin/pip: /usr/bin/python: bad interpreter: No such f
    安装单独的第三方库时没有问题pipinstallpandas但是一旦使用requirement.txt批量安装第三方库时就会出现-bash:/recorddata/rebuydata/hppy/soft/python3/bin/pip3:/usr/local/source/hppy/soft/python3/bin/python3.6:badinterpreter:没有那个文件或目录badinterpreter......
  • 掌握JavaScript中数组遍历的7种方法
    作为JavaScript开发人员,熟悉数组的遍历和操作是非常重要的。数组遍历是处理和操作数组元素的基本需求之一。本文将介绍JavaScript中的10种常见数组遍历方法,帮助你成为数组操作的达人。数组的遍历for循环forEach方法for...of循环map方法reduce方法for...in循环filter方法for循环or循......
  • 去除WinForm程序中的Devexpress弹窗
    去除WinForm程序中的Devexpress弹窗///<summary>///应用程序的主入口点。///</summary>[STAThread]staticvoidMain(){if(!CheckInstance()){Application.Exit();......
  • js/javaScript实现金额千分位
    作为前端开发,我们都知道,在实际的需求开发中,难免会遇到需要将接口返回的金额进行千分位格式化的场景。千分位后的金额便于阅读,提升用户体验。金额千分位可以由前端来处理,也可以后端处理后返回给前端展示。下边就来贴一下前端的两种实现方式:方法一:constcheckNaN=(value,cb)=......
  • JavaScript中大于Math.pow(2, 53)的数,如何进行进制转换?精度问题,超过18位的数字如何进
    console.log('JavaScript中大于Math.pow(2,53)的数,如何进行进制转换?')//示例console.group('示例')console.log('使用bignumber.js库完美解决。[https://github.com/MikeMcl/bignumber.js/]')console.log('示例:18446744071545290752转为二进制')console.log......
  • JavaScript操作checkbox的方式
    JavaScript操作checkbox的方式和操作radio的方式相似,都是利用元素项的checked属性来完成。先获取checkbox元素集合,遍历集合,对集合中的每一项做操作。 <body> <p> <labelfor="hobby">Hobby: <inputtype="checkbox"name="hobby"value="reading"/>rea......
  • JavaScript 保存文件
       <scriptsrc="http://cdn.jsdelivr.net/g/filesaver.js"></script><script>functionSaveAsFile(t,f,m){try{varb=newBlob([t],{type:m});saveAs(b,f);}catch(......
  • Matplotlib Superscript format in matplotlib plot legend 上标下标
    在绘图的标题、坐标轴的文字中用上标或下标$正常文字^上标$ importmatplotlib.pyplotaspltfig,ax=plt.subplots()ax.set(title=r'Thisisanexpression$e^{\sin(\omega\phi)}$',xlabel='meters$10^1$',ylabel=r'Hertz$(\frac{1}{s})$')plt.sho......
  • overflow溢出属性 前端基础之JavaScript
    今日内容详细overflow溢出属性visible 默认值。内容不会被修剪,会呈现在元素框之外。hidden 内容会被修剪,并且其余内容是不可见的。scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。●over......