使用浏览器开发者工具监控API调用时,如果API调用的请求体是gzip编码的,如何解压查看?
使用 Chrome,我无法复制/粘贴请求正文(有效负载),但如果我将请求保存到 HAR 文件,然后使用 HAR 浏览工具导出请求正文,gunzip 会抱怨它不是有效的 gzip文件。
使用 Safari,我可以复制/粘贴请求正文,但使用该方法或通过 HAR 导出的结果仍然会导致无效的 gzip 文件。
出于显示或导出目的,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 格式,该输出就会出现。