如何通过 Postman 预请求脚本设置请求正文?

Posted

技术标签:

【中文标题】如何通过 Postman 预请求脚本设置请求正文?【英文标题】:How to set the request body via Postman's pre-request script? 【发布时间】:2018-11-15 20:27:01 【问题描述】:

我使用 Postman 6.0 发送 HTTP 请求。为了发送请求,我使用预请求脚本获取令牌并将其放入环境中,以便在后续请求中使用它。

以下脚本不起作用,因为未发送正文。下面的脚本有什么问题吗?

const getTaxAccessToken=
  url: 'http://dev.xxx.com:4001/api/v1/portal/account/tax-login',
  method: "post",
  body: 
      'loginIdentity': 'admic',
      'password': 'abc123'
  ,
  header: 
      'Content-Type': 'application/json'
  
;
pm.sendRequest(getTaxAccessToken, function (err, response) 
  console.log("get accesstoken");
  console.log(response.access_Token);
  pm.environment.set("taxAccessToken", response.access_Token);
);

【问题讨论】:

【参考方案1】:

试试这个。

  body: 
     mode: 'raw',
     raw: JSON.stringify('loginIdentity': 'admic', 'password': 'abc123')
  

【讨论】:

【参考方案2】:

如果请求需要是application/x-www-form-urlencoded类型:

const options = 
  url:  'http://some/url', 
  method: 'POST',
  header: 
    'Accept': '*/*',
    'Content-Type': 'application/x-www-form-urlencoded',
  ,
  body: 
    mode: 'urlencoded',
    urlencoded : [
       key: 'loginIdentity', value: 'admic',
       key: 'password', value: 'abc123',
    ]
  
;

pm.sendRequest(options, function (err, res) 
  // ...
);

Postman javascript API 参考:

Request RequestBody

【讨论】:

这就是我要找的东西!谢谢。我不确定 sendrequest 的不同模式是什么。 感谢这对我有用。是否有任何参考可以让我看到所有有效的邮递员预请求脚本示例代码或文档? @Milan 没有明确的示例,但我记得查看了 Request (postmanlabs.com/postman-collection/Request.html) 和 RequestBody (postmanlabs.com/postman-collection/RequestBody.html) 的 Postman API 文档。 @GinoMempin 谢谢 RequestBody 足够直观。

以上是关于如何通过 Postman 预请求脚本设置请求正文?的主要内容,如果未能解决你的问题,请参考以下文章

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

Postman的预请求脚本

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

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

使用 Postman 的预请求脚本实现自动刷新接口凭证

使用 Postman 的预请求脚本实现自动刷新接口凭证建议收藏