Echolot
请求

响应捕获

在每次发送之后,把响应中的值(例如令牌或 ID)保留到变量中,让其他每个请求都读取最新的值。

捕获会在每次发送之后,把请求响应中的一个值保留到变量里。把登录响应中的访问令牌捕获到 {{token}},每个使用 {{token}} 的请求发送的都是最新的令牌,无需手动拷贝。 令牌刷新时,它们都会拿到新的令牌。

捕获与请求一起存储,所以拥有该工作区的每个人都能使用,无论是在运行器、流程中,还是在你点按 发送 时。

存入响应中的值

创建捕获最快的办法,是直接在响应上操作:

  1. 发送请求。在 Alpenglow 示例中,发送 Auth › Sign in。
  2. 在 正文 标签页中,选择 JSON 树(对于相应的正文,也可以选择 表单、MessagePack 或 XML)。
  3. 将指针停留在值上,例如 access_token,然后点按 存入变量…。
  4. 输入 变量名称,或保留根据路径建议的名称。输入时会提供已在使用的名称;选取其中一个会替换那个变量(面板会显示 替换 token)。
  5. 在 存储到 下,选择窗口的环境(环境“Staging”)或 工作区。
  6. 勾选 密钥,让值只保存在钥匙串中,绝不写入文件。对于看起来像凭据的名称(token、secret、password、apiKey 等),它默认已勾选。
  7. 保持 每次发送时更新 为勾选状态,即可把它作为该请求的捕获,与请求一起存储。取消勾选则只存入一次。
  8. 点按 存入。
Sign in 的 JSON 树上方的“存入变量”面板:路径 $.access_token,变量名称 token,存储到“工作区”,已勾选“密钥”和“每次发送时更新”

编辑捕获

请求的捕获在它的 变量 标签页中,位于 来自响应 下,在请求自己的变量下方。每一行是一个捕获:

列内容
复选框该捕获是否运行。
变量变量的名称,不带花括号。
来源从响应的哪个位置读取值。
路径或名称JSONPath、XPath,或标头或 Cookie 的名称。
存储到环境(发送请求时为窗口选定的那个)或 工作区。
密钥存储在这台 Mac 的钥匙串中,从不写入工作区文件。已是机密的变量仍保持为机密。

点按 添加值 添加新的一行,点按 − 按钮移除一行。发送之后,每一行在成功存入其值时显示绿色对勾,没有成功时则显示橙色警告和原因。

值从哪里来

来源路径或名称示例
JSON指向 JSON 正文的 JSONPath。$.access_token
表单指向 URL 编码正文的 JSONPath,按对象读取。$.access_token
MessagePack指向 MessagePack 正文的 JSONPath,按 JSON 读取。$.access_token
XML指向 XML 正文的 XPath。/auth/token
标头按名称读取的响应标头。Location
Cookie按名称读取的、响应所设置的 Cookie。session
状态状态码。
正文整个正文,作为文本。

环境还是工作区

  • 环境 把变量写入发送时为窗口选定的环境。用它保存因服务器而异的值,例如预发布环境的令牌和生产环境的令牌。没有选定环境时,不会存入任何内容,该行会提示选择一个环境或存储到工作区。
  • 工作区 写入一个工作区变量,无论选定哪个环境,它都相同。

同名变量时,环境中的值优先于工作区中的值,所以当选定的环境有同名变量时,存入工作区的捕获会被它遮住。见环境。

机密

被捕获的机密只写入钥匙串。工作区文件里有变量的名称,但从不保存它的值,所以你可以提交工作区。对于你捕获的每个令牌、会话 ID 或密钥,都要打开 密钥。 见机密。

在 Alpenglow 中,Auth › Sign in 把 $.access_token 捕获到工作区机密 token 中,Orders 文件夹则把它作为 Bearer 令牌发送。

什么都没有捕获时

在下列情况下,捕获会保持其变量原样,并在发送之后说明原因:

  • 响应的状态为 400 或更高:只有状态低于 400 的响应才会保留值,所以失败的登录绝不会覆盖一个有效的令牌,
  • 路径在响应中找不到任何内容,
  • 正文大于 32 MB,
  • 它要存储到环境,但没有选定环境,
  • 不允许写入:当 AI 智能体发送请求时,由它的策略决定能否更改变量。见智能体。

捕获还是响应值

诸如 {{$response('auth/sign-in', '$.access_token')}} 的动态值会直接读取某个请求的最新响应, 如果它还没有响应,就先发送它。捕获则是把值拷贝到变量中,适合许多请求都会用到、或多个请求都能刷新的值。两者读取的 JSONPath 和 XPath 相同。

本页内容