【问题标题】:How do I save the response body from one request and use it in another request with some changes in Postman如何从一个请求中保存响应正文并在另一个请求中使用它并在 Postman 中进行一些更改
【发布时间】:2020-01-06 20:44:44
【问题描述】:

我有一个对 OKTA 的 GET 请求,以检索一些使用一些变量等的信息。它返回一个正文。我有第二个 PUT 类型的请求,我在其中手动粘贴 BODY 并更改一个变量。我正在尝试确定是否可以删除将响应正文从第一个 GET 请求粘贴到第二个 PUT 请求的手动过程。

例如,我有一个网址:

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}},

}

我看过一些文章显示:

【问题讨论】:

    标签: postman postman-pre-request-script


    【解决方案1】:

    首先,让我们先验证 JSON 响应。这是带有一些虚拟数据的有效 JSON。

    {
        "blah": "some more blah",
        "signOn": {
            "defaultRelayState": "1",
            "ssoAcsUrlOverride": "www.google.com",
            "audienceOverride": "true",
            "recipientOverride": "yes"
        }
    }
    

    1) 将第一个请求的响应保存到环境变量req_body 中,如下所示,

    var jsonData = pm.response.json();
    
    pm.environment.set("req_body",  jsonData);
    

    2) 在 PUT 请求中,在 body 中取另一个环境变量 replace_this_body

    3) 获取我们在 Pre-request 脚本的第一个请求中设置的 E'variable req_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 请接受这个答案,如果它对您有帮助,请不要忘记投票。另请阅读how this answer would help others
    猜你喜欢
    • 2017-01-25
    • 1970-01-01
    • 2019-05-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-16
    • 2017-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多