如何通过软件工具下载或查看作为多部分请求(例如PUT)发送的文件?
是否有办法在macOSX上使用像CharlesProxy这样的特定工具来下载和查看作为请求的一部分发送的文件(PUT多部分请求)。我通常通过代码更改将文件保存到沙箱来验证此类问题。理想情况下,需要我们的QA可以使用的东西,并且不需要任何代码修改。
在macos上的Charles Proxy足以满足最开发/ QA需求,例如: - 节流网络 - 设备调试 - 下载响应数据 - ......
答案 0 :(得分:2)
这可以通过手动编辑二进制文件来完成。有点棘手,但是可以将文件保存在多部分HTTP请求中,而无需修改项目代码。
以下是步骤(已在Charles v4.2.8和macOS v10.12.6上验证):
保存请求。右键单击记录的HTTP请求(发送文件的请求),然后单击“保存请求...”。这会将整个HTTP请求保存为二进制格式。
检查请求的十六进制表示形式。左键单击记录的HTTP请求,然后单击“请求”面板的“十六进制”选项卡。这将显示请求的二进制表示形式以及一些已解析的文本。
编辑已保存的请求。使用支持二进制文件的编辑器(例如Sublime Text)打开保存的请求(步骤1)。然后,根据步骤2的结果删除所有非映像二进制代码。尤其是,删除(并包括)第一个空行之前的每个字节(在macOS和Windows中为0a0a
,在Linux中为0d0a
) ,然后删除尾部字节。例如,以下屏幕快照指示步骤2的请求字节,所选字节将被删除(请注意Content-Type
字节,因为此实验是在Mac上进行的):
...
保存图像文件。步骤3完成后保存文件。然后,在步骤2中根据Content-Type
值附加文件名扩展名。在本实验中,image/png
是.png
,因此{{1}}被附加到文件名。
就是这样。您现在可以打开xxx.png文件。这是一个纯图像文件。
注意:该实验仅包含1个文件,但是当请求中有多个文件上传时,该策略才有效。