预请求脚本中的邮递员请求正文

Tan*_*nzy 3 postman

我有一个 Postman Pre-request 脚本来向请求添加 HMAC 密钥。除非主体中有环境变量,否则这很有效。所以如果我有以下身体

{
    "key": "{{key}}",
    "value": "some value"
}
Run Code Online (Sandbox Code Playgroud)

当发送请求时键值设置为sample时,正文包含以下内容

{
    "key": "sample",
    "value": "some value"
}
Run Code Online (Sandbox Code Playgroud)

这是我期望发生的事情。但是,当访问 Pre-Request Script 中的请求正文时,

console.log(pm.request.body.toString());
Run Code Online (Sandbox Code Playgroud)

我得到以下

{
    "key": "{{key}}",
    "value": "some value"
}
Run Code Online (Sandbox Code Playgroud)

如何获取已替换变量的正文,以便将其发送到服务器?

Pet*_*ser 7

您可以使用以下函数插入占位符:

function interpolate (value) {
    const {Property} = require('postman-collection');
    return Property.replaceSubstitutions(value, pm.variables.toObject());
}
Run Code Online (Sandbox Code Playgroud)

在你的情况下:

console.log(interpolate(pm.request.body.toString()));
Run Code Online (Sandbox Code Playgroud)