如何在 Postman 预查询脚本和正文中获取当前的 ISO8601 时间戳?

Posted

技术标签:

【中文标题】如何在 Postman 预查询脚本和正文中获取当前的 ISO8601 时间戳?【英文标题】:How do I get current ISO8601 timestamp in Postman Pre-Query Script and Body? 【发布时间】:2020-03-25 16:13:05 【问题描述】:

在预查询脚本中使用 Postman 和以下代码

   const moment = require('moment');
   pm.globals.set("timestamp", moment().format("YYYY-MM-DDTHH:MM:SSZ"));

我得到了回应

请求签名已过时且已过期。时间戳日期:2019-11-30T10:11:10+00:00

在正文中我使用的是 timestamp。

我需要 ISO8601 格式的时间戳。

如果我使用

    $timestamp

它返回 1575110444 的 Linux 日期,今天 10:41 是正确的

【问题讨论】:

【参考方案1】:

现在似乎有一个开箱即用的 $isoTimestamp 变量

【讨论】:

【参考方案2】:

看看这个postman inbuilt variables

$timestamp 是邮递员的内置动态变量,它将始终返回 unix 时间戳。 你可以做的是重命名你设置的变量 -

const moment = require('moment');
pm.globals.set("timestamp1", moment().format("YYYY-MM-DDTHH:MM:SSZ"));

并使用它timestamp1

注意内置变量中的$ 符号

查看this thread了解更多信息

【讨论】:

感谢您解决该问题的回答。我原以为 $ 可能意味着它是 Linux 语法,但我不是专家,我不想假设。现在进入签名问题。我对这一切都很陌生,所以在用我的问题轰炸他人之前,我正在做大量研究以尝试自学。 另外,我现在将它缩短为 const moment = require('moment'); pm.globals.set("时间戳", moment().format());它似乎仍然可以正常工作! 格式不应该是“YYYY-MM-DDTHH:mm:ssZ”吗?

以上是关于如何在 Postman 预查询脚本和正文中获取当前的 ISO8601 时间戳?的主要内容,如果未能解决你的问题,请参考以下文章

postman请求参数如何获取到当前时间

如何在预请求脚本中更改 Postman 环境?

邮递员 - 在预请求脚本中访问完整的请求正文(以计算哈希)

Postman的预请求脚本

如何在 PostMan 的预请求脚本中计算 md5 哈希?

如何使用 Postman 中的预请求脚本从另一个请求运行一个请求