【问题标题】:How can I extract the value of the 'response' from a request and then use it in subsequent requests as Header in SOAPUI and POSTMAN for rest api如何从请求中提取“响应”的值,然后在后续请求中将其用作 SOAPUI 和 POSTMAN 中的 Header 用于 rest api
【发布时间】:2018-01-13 06:10:03
【问题描述】:

API:

https://interviewer-api.herokuapp.com/ 提供了一个公共 API,您可以使用它以非常简单的方式管理您的财务。

API 有 2 个端点:

/login 为您提供了一个令牌,您需要在随后的 Authorization 标头中调用 API 时使用该令牌。每次调用都会返回一个带有一些初始交易和余额的新令牌。

/balance 为您提供当前余额以及货币代码。


所以我想要做的是发送一个“登录”的 POST 请求并获取一个令牌作为响应。现在我想在下一个“Balance”请求中使用这个 TOKEN 作为 Header。

那么在 SOAP UI 和 POSTMAN 中是否有一种方法可以捕获响应,然后自动将其存储为下一个请求的标头,这样我就不必一次又一次地手动执行。

【问题讨论】:

    标签: rest api soapui postman


    【解决方案1】:

    您应该执行以下操作:

    • 执行您的 /login 请求以获取令牌
    • 在测试部分,执行:

      var body = JSON.parse(responseBody); postman.setEnvironmentVariable("token", body.token);

    • 在 /balance 请求中使用上述令牌作为标头项:

      Authorization: {{token}}

    • 这将确保您的所有请求都有在运行时生成的有效令牌。

    【讨论】:

    • 是的,它有效,如何执行此 SOAPUI?在哪里写这个测试?
    【解决方案2】:

    通常,/login 将在响应标头中发送令牌,因此获取该响应标头值并将其存储为环境变量,并将该变量用于所有后续请求。

    将令牌作为响应正文是不好的做法,因为响应正文应仅包含 API 业务逻辑,但您的情况是进行身份验证,因此它应该是响应标头或 cookie(如果我错了,请纠正我)。

    在邮递员中,如果您启用“拦截器”,则默认情况下它将采用该 cookie 并将其用于所有后续请求,因此无需将该 cookie 也存储为变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-03
      相关资源
      最近更新 更多