当前位置: 首页 > ds >正文

Postman遇到脚本不支持replaceIn函数

目录:

    • 1、问题现象
    • 2、代码处理
    • 3、执行结果

1、问题现象

在这里插入图片描述

2、代码处理

function replaceVariables(template) {// 获取所有变量(环境变量+全局变量)const variables = pm.environment.toObject();const globalVars = pm.globals.toObject();const allVars = {...globalVars, ...variables};let result = template;// 替换所有 {{variable}} 格式的变量for (const [key, value] of Object.entries(allVars)) {const regex = new RegExp(`\\{\\{${key}\\}\\}`, 'g');result = result.replace(regex, value);}return result;
}
var appId='xxxxxxxxxxxx'
var appKey='xxxxxxxxxxxxxxxx'
// console.log(`appId=${appId}, appKey=${appKey}, appToken=${appToken}`)
function replaceVariables(template) {// 获取所有变量(环境变量+全局变量)const variables = pm.environment.toObject();const globalVars = pm.globals.toObject();const allVars = {...globalVars, ...variables};let result = template;// 替换所有 {{variable}} 格式的变量for (const [key, value] of Object.entries(allVars)) {const regex = new RegExp(`\\{\\{${key}\\}\\}`, 'g');result = result.replace(regex, value);}return result;
}
// 获取请求信息
var method = 'POST'
var path='/api/xxx/sync/v1/xxx'
var body=replaceVariables(pm.request.body.toString());
console.log(`‘111111’+${body}`)
var contentType="application/json"
var dateString = new Date().toGMTString();
var authorization = "";
if(body==""){console.log(`[${method}] ${path}`)authorization = 'xxx-4' + method + path + contentType + dateString 
} else {console.log(`[${method}] ${path}\n${body}`)authorization = 'xxx-4' + method + path + contentType + dateString +  CryptoJS.SHA256(body).toString(CryptoJS.enc.Hex)
}console.log(`authorization ${authorization}`)
authorization = CryptoJS.HmacSHA256(authorization, appKey).toString(CryptoJS.enc.Hex)
authorization = 'xxx-4 ' +appId + ':' + authorization
console.log(`authorization11 ${authorization}`)
// 设置请求头
pm.request.headers.upsert({key: 'xxx-Docs-Date',value: dateString
})
pm.request.headers.upsert({key: 'Content-Type',value: contentType
})
pm.request.headers.upsert({key: 'xxx-Docs-Authorization',value: authorization
})
// console.log(pm.request.getHeaders());

3、执行结果

在这里插入图片描述

原先自己尝试写死去构造json转字符串,带入签名一直不通过,尝试使用代码替换可行,特此记录一下。

http://www.xdnf.cn/news/6969.html

相关文章:

  • Cookie、Session、Token
  • 自定义类、元组、字典和结构体对比——AutoCAD C# 开发中建立不同对象之间的联系
  • 灵光一现的问题和常见错误2
  • C语言:在 Win 10 上,g++ 如何编译 gtk 应用程序
  • Android核心系统服务:AMS、WMS、PMS 与 system_server 进程解析
  • cursor/vscode启动项目connect ETIMEDOUT 127.0.0.1:xx
  • 鸿蒙ArkUI体验:Hexo博客客户端开发心得
  • JVM 调优实战入门:从 GC 日志分析到参数调优
  • 基于requests_html的python爬虫
  • Redis——缓存雪崩、击穿、穿透
  • 内容安全:使用开源框架Caffe实现上传图片进行敏感内容识别
  • HMDB51数据集划分
  • V 型不锈钢对夹球阀:高性价比流体控制的优选方案-耀圣
  • 联想笔记本黑屏了,排线出问题还是静电
  • QT调用Halcon查询所有摄像头名称
  • 遨游科普:三防平板是什么?有什么功能?
  • Linux安全篇 --firewalld
  • Windows系统永久暂停更新操作步骤
  • 微软家各种copilot的AI产品:Github copilot、Microsoft copilot
  • 什么是PMBus
  • 18-总线IIC
  • 大模型在腰椎间盘突出症预测与治疗方案制定中的应用研究
  • LeetCode 热题 100_寻找重复数(100_287_中等_C++)(技巧)(暴力解法;哈希集合;二分查找)
  • 字节2025实习/校招/社招 内推码:R9SZ7Y1
  • 车载以太网驱动智能化:域控架构设计与开发实践
  • 【Ubuntu】Waydroid-Linux安卓模拟器安装
  • 【数据结构】线性表--队列
  • 自动化脚本开发:Python调用云手机API实现TikTok批量内容发布
  • 卷积神经网络中的二维卷积与三维卷积详解
  • 山东大学计算机图形学期末复习10——CG12下