【问题标题】:Postman - Using complete response from one request as body of another request邮递员 - 使用来自一个请求的完整响应作为另一个请求的正文
【发布时间】:2018-03-09 21:55:59
【问题描述】:

我有一个请求,一个请求的确切响应是另一个请求的正文。

有没有一种简单的方法来存储一个请求的响应,以便在 Postman 中作为另一个请求的主体重用?

我尝试将响应正文存储在全局变量 customerData 中,然后将其他请求的正文设为 {{customerData}},但这不起作用。

感谢您的帮助。

【问题讨论】:

  • 是下一个请求中的 JSON 响应/有效负载吗?您可以尝试在测试选项卡中使用sendRequest() 以同时在另一个请求中发送响应。

标签: postman


【解决方案1】:

您可以通过在您的第一个GET 请求的Tests 选项卡中使用sendRequest() 函数来实现此目的。这将在完成后发送请求并获取数据,然后将 POST 相同的响应数据发送到另一个端点。

这是一个非常基本的示例,可以添加到 Tests 选项卡中,可以根据您自己的上下文进行更改/调整:

pm.sendRequest({
    url: 'localhost:3000/post',
    method: 'POST',
    headers: {
        "Content-Type": "application/json"
    },
    body: {
        mode: 'raw',
        raw: JSON.stringify(pm.response.json())
    }
}, (err, res) => {
    console.log(res)
})

这就是 Postman 中的样子 - 我已经向 /get 路由发送了一个基​​本请求,在 Tests 选项卡中,我使用该响应数据作为 POST 请求的负载插入pm.response.json()。您可以看到 /post 路由的请求正文是从第一个请求中获取的。

【讨论】:

    【解决方案2】:
    API-1 - Test Tab
    
    //Get the response of first API
    
    var jsonData=JSON.parse(responseBody);
    
    //Convert the JSON response to String
    
    var jsonString=JSON.stringify(jsonData);
    
    //Store in environment variable
    
    pm.environment.set("MyPayLoad", jsonString);
    
    
    
    API-2 - Body    
    {{MyPayLoad}}
    

    这种方式来自 API-1 的响应作为负载传递给 API-2

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-17
      • 1970-01-01
      • 1970-01-01
      • 2010-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多