为后续调用设置标头变量

时间:2017-06-19 10:58:15

标签: javascript postman

我有一个设置调用,它在标头中返回会话ID,如下所示。

curl -X GET --header 'Accept: application/json'  'https://<url>/initConn'

将会话ID作为响应标头的一部分返回为:

{ ...,
 "sessionId": "111",
...
}

现在我必须在所有后续调用中使用相同的会话ID:

 curl -X GET --header 'Accept: application/json' --header 'X-SESSION_ID: 111' 'https://<url>/someCommand'

使用邮递员,怎么可能:

  • 从标题
  • 中提取会话ID
  • 在Postman的后续电话中附加

2 个答案:

答案 0 :(得分:3)

不确定如何通过命令行使用cURL,但您可以使用Environment Variables设置从一个API请求获取标头,保存它然后在另一个API调用中使用它。

假设我们有一个名为F1的API,它会在响应中为我们提供一个名为uid的参数,我们需要在标题中使用此access_token作为另一个API,名为F2

  • 转到邮递员窗口角落端的Manage Environments

Manage Environments

  • 点击Manage Environment,然后在新窗口中点击添加以添加新环境

enter image description here

  • 添加要添加的新环境变量名称。假设我希望我的变量被称为access_token,因此我将向新添加的环境添加一个新密钥,并将值字段保持为空。 enter image description here

  • 现在点击ADD,然后转到Postman窗口,输入API F1的API端点,以及需要与F1一起发送的任何标头值。确保从显示的环境选项中选择新创建的环境。

enter image description here

  • 现在转到位于headers右侧的测试,并在测试窗口中输入以下内容,如下所示

    var jsonData = JSON.parse(responseBody); postman.setEnvironmentVariable("access_token", jsonData.uid);

现在点击SEND并等待来自F1的响应。

enter image description here

  • 打开另一个标签,输入F2的API终点,然后选择刚刚在上述步骤中创建的新创建的环境。

现在,由于我们希望响应中的uid成为我们F2请求标头的一部分,我们需要在标头中添加它。

转到header标签,然后输入uid作为密钥,{{access_token}}作为此密钥的值,如下所示。

现在,您已准备好发出F2请求。这将从第一个API F1中提取uid,并将其作为API F2的标头传递

enter image description here

答案 1 :(得分:1)

使用post-request脚本(可能标记为&#34;测试&#34;我不在我的电脑上!)从响应中提取数据并将其存储在全局变量中。然后,在后续请求中,使用预请求脚本来抓取它,或直接在{{myVariableName}}的标头中引用它。