Echolot
请求

响应

读取响应的状态、耗时、正文、标头、Cookie 和传输字节,搜索大型正文,比较响应并存储它们。

服务器返回的一切都显示在响应窗格中:适合其类型的视图中的正文、标头、Cookie、原样的消息,以及它的十六进制字节和传输中的字节。状态和耗时显示在 URL 栏下方的那一行。 正文在到达时就写入磁盘,所以几百 MB 的响应也能像小响应一样快地打开。

List products 的响应,在 JSON 树视图中,指针悬停在一个值上,显示它的“拷贝值”和“存入变量”按钮

状态、耗时和大小

发送之后,URL 栏下方的那一行显示:

  • 状态,按其类别(2xx、3xx、4xx、5xx)着色;没有得到响应的请求则改为显示 失败 或 已取消,
  • 交换每个 阶段 对应的一条横条,在请求运行时不断增长,
  • 总耗时。

将指针停留在这一行上,会打开一张带详情的卡片:

卡片中的项目含义
状态状态码和原因短语。
时间这次交换的总耗时。
大小正文的大小;正文到达期间,显示已到达多少、共多少。
编码压缩方式,以及解码前后的大小,例如 br, 12 KB → 48 KB,或无法解码的说明。
3 次重定向所跟随的重定向;点按可查看每一跳的状态、方法、地址和耗时。
检查请求的检查中有多少通过。
复用的连接请求使用的是先前保持打开的连接:没有 DNS、连接或 TLS 耗时。
TLSTLS 版本和协议,例如 TLS 1.3 · h2。点按它可查看证书:主体、颁发者、有效期 日期和 名称。橙色的打开的锁表示验证已关闭。
提供 HTTP/3服务器通过 Alt-Svc 提供了 HTTP/3;见 HTTP 版本。
地址服务器的 IP 地址和端口。
时间线DNS、连接、TLS、等待(直到响应的第一个字节)和 传输,每项都附有耗时。

当请求被重新发送(在新连接上,或通过 HTTP/1.1)时,卡片会说明原因。请求失败时,卡片会显示错误。

响应标签页

标签页显示的内容
正文正文,以你选择的视图显示。
事件服务器发送事件和其他事件流,每个事件一行。见 WebSocket 与 SSE。
测试请求的检查和脚本测试的结果,带计数,例如 3/4。
控制台请求的脚本所记录的日志;仅在脚本运行过时显示。见脚本和测试。
标头响应标头,带计数。
Cookie发送和设置的 Cookie,以及窗口的 Cookie 存储。
原始作为一条 HTTP 消息的响应:状态行、标头、一个空行和正文。
十六进制正文的字节。
传输发送和接收的字节,与它们在连接上传输时完全一样。

正文视图

在 正文 标签页顶部那一行中选择视图:

视图显示的内容
文本到达时的正文,按其内容类型着色。
JSON美化后的 JSON。
JSON 树可展开和折叠的树形 JSON。
XML以元素、属性和文本组成的树显示的 XML。
表单读作树的 URL 编码正文。
MessagePack读作树的 MessagePack 正文。
预览通过“快速查看”显示图像、PDF、音频和视频。

每个视图对每种正文都可用,所以用错误的内容类型发送的响应,仍可以按它真实的类型来读。响应以哪个视图打开由内容类型决定,Echolot 会为每种正文记住你选择的视图: 在你为某个 JSON 响应选择 JSON 树 之后,接下来的响应会以树打开。

HTML 和脚本绝不会被运行或渲染。预览 和 在默认 App 中打开 会把它们显示为文本。

文本视图中的长行会横向滚动。点按换行按钮,或选取 视图 › 自动换行,即可让它们换行。视图 › 放大代码(⌘+)、缩小代码(⌘-)和 实际代码大小(⌘0)会更改各处代码的大小。

JSON 树和 XML 树

树显示每个值的键或索引、类型和值;折叠的对象或数组会显示它包含多少项。超过 1,000 项的数组会被拆分成 [0 … 999] 之类的范围,所以再大的数组也能立即打开。

将指针停留在某个值上,会出现它的按钮:

  • 在浏览器中打开,用于是网址的值,
  • 拷贝值,
  • 存入变量…,它把值保留在变量中,并且如果你愿意,会在每次发送后更新它。见响应捕获。

右键点按某一行可看到更多:

  • 在 JSON 树中:拷贝路径(指向该值的 JSONPath,例如 $.items[0].sku)、拷贝值 和 添加断言,后者会在 测试 标签页中添加一项检查,要求该值等于它现在的值。
  • 在 XML 树中:拷贝 XPath 和 拷贝值。

将指针停留在是图像地址的值上,旁边会打开一张缩略图。图像的获取方式与浏览器获取图片一样:不带你的 Cookie 或凭据,最大 10 MB,也不会记入历史记录。 data:image/… 值无需任何请求即可显示。将指针停留在看起来像日期的值上(以秒、毫秒、微秒或纳秒计的 Unix 时间,或 ISO 8601 时间戳),它会显示为易读的日期。

XML 树接受最大 50 MB 的正文,表单 和 MessagePack 最大 64 MB。更大的请使用 文本 并查找。

查找

按 ⌘F(请求 › 在正文中查找)或点按放大镜。

  • 在 文本 和 JSON 中,输入要查找的内容。Aa 区分大小写;.* 将其作为正则表达式。栏中会显示你所在的位置,例如 3 of 1,204。按 ↩ 或 ⌘G 查找下一个匹配项, 按 ⇧⌘G 查找上一个。最多标出 10,000 个匹配项;更多时计数会显示 +。
  • 在 JSON 树、表单 和 MessagePack 中,栏接受 $.items[0] 之类的 JSONPath,并跳转到该值。那里什么都没有时,会显示 未找到。

按 Esc 关闭这一栏。

大型响应

Echolot 绝不会把正文留在内存中。它在正文到达时流式写入文件,而查看器只读取屏幕上的那一部分:

  • 其余部分仍在到达时,开头的几行就已经显示。正文下载期间,详情卡片会显示已到达多少。
  • JSON 在正文一开始就开始美化,并随着它的增长而跟进。
  • JSON 树 只构建你展开的行。
  • 查找会搜索磁盘上的整个正文。

可以用 Alpenglow 中的 Catalog › Export the catalog 试一试:40,000 个产品,约 14 MB。

正文在磁盘上最多保留到 设置 › 储存空间 › 响应正文最多保留 所设的大小;超过之后,最久未使用的会被移除,在标签页中打开的正文除外。正文已被移除的较早响应会显示 此响应的正文已不再储存。 见储存与加密。

标头

标头 标签页按响应标头到达的顺序列出它们。将指针停留在某一行上,或选中它并按 Space(用 ↑ 和 ↓ 移动),可查看完整的值、 标头的用途以及它的值表示什么。右键点按标头,可选取 拷贝值、拷贝标头 和 添加检查,后者会在 测试 标签页中添加针对该标头的检查。

Cookie

Cookie 标签页有三个部分:

  • 随请求发送:发出的 Cookie,以及每个的来源。
  • 由响应设置:每个 Set-Cookie,带它的属性,以及存储拒绝它时的警告。
  • 储存在此窗口中:窗口的 Cookie 存储中的所有内容。用它的按钮移除一个,或用 全部清除 移除全部。

当请求的 发送并储存 Cookie 关闭时,标签页会说明这一点。见 Cookie。

原始、十六进制和传输

  • 原始 把响应显示为一条消息:状态行、标头、一个空行,然后是解码后的正文(它的前 64 MB;正文 标签页有全部内容)。
  • 十六进制 显示正文的字节:偏移量、每行 16 个字节分成两组,以及它们的 ASCII。用鼠标,或用方向键和 ⇧ 选择字节;拷贝得到十六进制数对,在 ASCII 列中选择时则得到文本。
  • 传输 显示字节,与它们在连接上传输时完全一样:选取 已发送 或 已接收。你能看到分帧后的标头,以及解码之前的压缩正文。每个方向最多保留 1 MB;标签页只显示前一部分时会说明。

存储和分享

点按 正文 标签页右上角的存储按钮:

  • 存储正文… 把正文(已解码)写入文件。
  • 在默认 App 中打开 用你的 Mac 为其类型所用的 App 打开它。
  • 存储编码的正文… 按到达时的样子写出正文,仍保持压缩;仅用于压缩的响应。
  • 将交换记录导出为 HAR… 把请求和响应写成 HAR 文件。

要分享请求而不是响应,请使用 请求 › 拷贝为 cURL(⌥⌘C)或 请求 › 生成代码…(⌥⌘G)。见 HTTP 请求。

较早的响应和比较

每次发送都保存在历史记录中。URL 栏下方那一行末尾带计数的时钟按钮,会打开这个请求的各个响应:每个都带有状态、时间、发送者(你、一次运行或一个智能体)、时长和大小。

List products 的响应历史弹出窗口,列出较早的响应及其状态、时间、来源、时长和大小
  • 点按某个响应即可显示它。响应窗格上方的一条栏显示 过去的响应;显示最新 回到最新的响应。
  • 要比较两个响应,先显示一个,然后将指针停留在列表中的另一个上并点按它的比较按钮,或点按 过去的响应 栏中的 与最新响应比较。比较会显示新增和移除的内容。
  • 列表菜单中的 清除此请求的历史记录… 会删除这个请求的历史记录。

整个工作区的历史记录见历史记录。

请求失败时

没有收到响应时,窗格会显示错误,例如 请求超时,以及 再试一次。还可能出现另外两个按钮:

  • 查看脚本…,当请求的脚本来自 Echolot 之外、需要你信任之后才能运行时出现。见脚本和测试。
  • 允许访问…,在 App Store 版本中,当请求指向应用尚不能读取的文件时出现。

本页内容