Skip to content

iPhone 对比两条 HTTP 请求:Header、JSON Body 和耗时差异一目了然

一条请求成功、另一条失败,差别在哪?HTTPS Capture 可以把两条抓到的请求并排对比,按字段比较 JSON Body,并对比各阶段耗时。

2 分钟阅读HTTPS Capture

“连 Wi-Fi 能登录,用流量就失败。”“昨天的版本还是好的。”排查问题时,经常要找出两条本该一样的请求 到底哪里不同。几十个 Header 加一大段 JSON,靠肉眼对比太费时间。HTTPS Capture 在 iPhone 上提供了 对比 视图,直接高亮差异。

开始对比

任选一种方式:

  • 在请求列表里 长按 一条请求,从它开始对比,然后选第二条请求。
  • 点请求列表工具栏上的对比按钮。

在对比页里点 Swap Sides 可以交换 A、B 两边;用 Replace Side A / Replace Side B 可以换一条请求,不用从头开始。用 URL 或状态码 搜索,可以很快找到想对比的请求。

对比哪些内容

页面最上方的 摘要 告诉你两条请求是否完全相同、差异在哪几块。下面分区展示:

  • 请求:URL、查询参数、Header、Body
  • 响应:状态码、Header、Body
  • 时序:DNS、连接、TLS、等待、下载各阶段 A、B 并排显示,一眼看出哪条慢、慢在哪里

按字段对比 JSON

两边都是 JSON 时,按 字段 对比,而不是逐行对比。修改的值、新增和删除的键都会高亮,即使格式或键的顺序不同也不影响。其他文本 Body 按行对比,大段相同的行会自动折叠。太大、无法逐行对比的 Body 会按大小和内容做比较。

打开 Differences Only(只看差异),可以隐藏两边相同的部分,只看改动。差异里的 A 值、B 值或某一行都可以单独复制。

常见用法

  • 成功和失败的请求对比:找出缺的 Header、过期的 Token 或不同的参数。
  • 版本发布前后对比:看 App 更新后接口调用变了什么。
  • 快的和慢的对比:通过耗时对比判断慢在 DNS、建连,还是服务端处理。
  • 两台设备或两个账号对比:同一个操作抓两次,看具体差在哪里。

下一步

找到差异后可以马上验证:用 编辑并发送 改掉那个值重新发一次,见 iPhone 上发送和重放 API 请求。想让修改作用于实时流量,就加一条 重写规则。

HTTPS Capture

Capture and decrypt HTTPS traffic on iPhone

App Store

准备好试试了吗?

HTTPS Capture · Capture and decrypt HTTPS traffic on iPhone

App Store 免费下载