如何从一个请求中保存响应正文,并在另一个请求中使用它,并在Postman中进行一些更改
我对OKTA有一个GET请求,请求检索一些使用变量等的信息。它返回一个主体。我有第二个类型为PUT的请求,我手动粘贴主体并更改一个变量。我正在尝试确定是否可以删除将第一个GET请求粘贴到第二个PUT请求的响应正文中的手动过程 例如,我有一个URL:如何从一个请求中保存响应正文,并在另一个请求中使用它,并在Postman中进行一些更改,postman,postman-pre-request-script,Postman,Postman Pre Request Script,我对OKTA有一个GET请求,请求检索一些使用变量等的信息。它返回一个主体。我有第二个类型为PUT的请求,我手动粘贴主体并更改一个变量。我正在尝试确定是否可以删除将第一个GET请求粘贴到第二个PUT请求的响应正文中的手动过程 例如,我有一个URL: GET https://{{myurl}}/api/v1/apps/{{instanceid}} 这将在有效负载中返回一些动态JSON数据,如下所示 "blah":{ some more blah }, "signOn": { "
GET https://{{myurl}}/api/v1/apps/{{instanceid}}
这将在有效负载中返回一些动态JSON数据,如下所示
"blah":{ some more blah
},
"signOn": {
"defaultRelayState": null,
"ssoAcsUrlOverride": ""
"audienceOverride": null,
"recipientOverride": null
}
我希望做的是:
PUT https://{{myurl}}/api/v1/apps/{{instanceid}}
{replay entire body from 1st request with the modification of
"ssoAcsUrlOverride": "{{some var that points to a new url}},
}
我看过一些文章,其中显示:
- 使用测试发送带有静态主体的GET请求,并重播该确切主体。在本例中,我希望修改一个参数not replay as=is
- 我在这里试过这根线(
postman-how-do-i-take-a-response-body-and-use-it-in-a-new-request-in-tes)但我收到一个错误,指出未定义
responseBody
{
"blah": "some more blah",
"signOn": {
"defaultRelayState": "1",
"ssoAcsUrlOverride": "www.google.com",
"audienceOverride": "true",
"recipientOverride": "yes"
}
}
1) 将第一个请求的响应保存到环境变量req\u body
中,如下所示
var jsonData = pm.response.json();
pm.environment.set("req_body", jsonData);
2) 在PUT请求中,在body中获取另一个环境变量replace\u this\u body
3) 获取我们在请求前脚本的第一个请求中设置的E'variablereq_body
的值。然后更改它的值并设置当前请求的主体变量
var requestBody = pm.environment.get("req_body");
requestBody.signOn.ssoAcsUrlOverride = "https://www.getpostman.com";
pm.environment.set("replace_this_body", JSON.stringify(requestBody));
最后,将更新的请求数据放入PUT请求 太棒了。我终于有机会测试了它,效果很好。很高兴知道这一点@jeyyu2003请接受这个答案,如果这个答案对你有帮助,别忘了投票。也读