如何捕获使用浏览器的开发人员工具观察到的 API 调用的 gzip 请求正文?

问题描述 投票:0回答:1

使用浏览器开发者工具监控API调用时,如果API调用的请求体是gzip编码的,如何解压查看?

使用 Chrome,我无法复制/粘贴请求正文(有效负载),但如果我将请求保存到 HAR 文件,然后使用 HAR 浏览工具导出请求正文,gunzip 会抱怨它不是有效的 gzip文件。

使用 Safari,我可以复制/粘贴请求正文,但使用该方法或通过 HAR 导出的结果仍然会导致无效的 gzip 文件。

google-chrome-devtools gzip har
1个回答
0
投票

出于显示或导出目的,Chrome 和 Safari 似乎都将请求正文视为每个 8 位字节都是一个 unicode 代码点,然后以 UTF-8 编码表示该内容。例如,gzip 标头的前两个字节表示为 0x1f、0xc2、0x8b 的三字节序列,而不是正确的 0x1f、0xc2。

我无法找到任何单个 Macos 实用程序可以让您反转上述编码,但以下内容可以工作:

(iconv -f UTF-8 -t UTF-16BE input_file |
   xxd -p -c 2 |
   awk '{print substr($0, 3, 2)}' |
   xxd -r -p |
   gunzip > output_file)

请注意,指定为

iconv
的 UTF-16BE 格式可防止该实用程序将 BOM 标头放置在输出前面,否则如果使用 UTF-16 格式,该输出就会出现。

© www.soinside.com 2019 - 2024. All rights reserved.