You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postman使用moment时环境变量请求引用首字符被截断

问题原因
  • 核心问题是JSON请求体中引用字符串类环境变量时未添加双引号包裹。Postman的环境变量替换是纯文本替换逻辑,你当前写法"StartDate": {{pastDate}}替换后实际发送的请求片段为"StartDate": 2022-06-26,完全不符合JSON语法要求:JSON规定字符串类型值必须用双引号包裹,未加引号的日期值会被解析器判定为数值类型尝试解析,但横杠不属于合法数值字符,解析流程直接中断。报错中提到的022-06-26不是接口实际收到的截断值,是解析器识别到首字符2判定为数值开头后,剩下的未解析片段,才会造成“首字符被截断”的假象,实际上环境变量中存储的值本身是完整的。
  • 前置脚本存在隐性bug:moment格式化参数中使用的小写yyyy是ISO周年计算符,不是通用的日历年格式,在每年跨年周的日期计算中会出现年份偏移问题,比如年末的日期可能被算成下一年的年份。
修复方案
  1. 调整请求体中的变量引用格式,给环境变量外层包裹双引号,保证替换后是合法JSON字符串:
{
  "AccountId": 1,
  "StartDate": "{{pastDate}}"
}
  1. 建议同步修正前置脚本的moment格式化参数,将小写yyyy替换为大写YYYY,避免跨年日期计算错误,修正后脚本如下:
var yesterday = moment().subtract(1, 'days').format("YYYY-MM-DD");
console.log(yesterday);
pm.environment.set("pastDate", yesterday);

内容的提问来源于stack exchange,提问作者Jimmy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 10:01:08