下载或查看作为多部分请求(PNG,PDF)网络代理工具发送的文件?

时间:2017-12-07 00:28:57

标签: ios macos charles-proxy

如何通过软件工具下载或查看作为多部分请求(例如PUT)发送的文件?

是否有办法在macOSX上使用像CharlesProxy这样的特定工具来下载和查看作为请求的一部分发送的文件(PUT多部分请求)。我通常通过代码更改将文件保存到沙箱来验证此类问题。理想情况下,需要我们的QA可以使用的东西,并且不需要任何代码修改。

在macos上的Charles Proxy足以满足最开发/ QA需求,例如:   - 节流网络   - 设备调试   - 下载响应数据   - ......

查看或下载Charles Proxy 4.x中的响应文件没有选项:  Screenshot Charles Proxy 4.x Save/View Request

Charles Proxy 4.x(及更早版本)允许保存获取响应文件,例如此屏幕截图中的pdf:Screenshot Charles Proxy 4.x Save/Copy Response

1 个答案:

答案 0 :(得分:2)

这可以通过手动编辑二进制文件来完成。有点棘手,但是可以将文件保存在多部分HTTP请求中,而无需修改项目代码。

以下是步骤(已在Charles v4.2.8和macOS v10.12.6上验证):

  1. 保存请求。右键单击记录的HTTP请求(发送文件的请求),然后单击“保存请求...”。这会将整个HTTP请求保存为二进制格式。 enter image description here

  2. 检查请求的十六进制表示形式。左键单击记录的HTTP请求,然后单击“请求”面板的“十六进制”选项卡。这将显示请求的二进制表示形式以及一些已解析的文本。 enter image description here

  3. 编辑已保存的请求。使用支持二进制文件的编辑器(例如Sublime Text)打开保存的请求(步骤1)。然后,根据步骤2的结果删除所有非映像二进制代码。尤其是,删除(并包括)第一个空行之前的每个字节(在macOS和Windows中为0a0a,在Linux中为0d0a) ,然后删除尾部字节。例如,以下屏幕快照指示步骤2的请求字节,所选字节将被删除(请注意Content-Type字节,因为此实验是在Mac上进行的): enter image description here ... enter image description here

  4. 保存图像文件。步骤3完成后保存文件。然后,在步骤2中根据Content-Type值附加文件名扩展名。在本实验中,image/png.png,因此{{1}}被附加到文件名。

就是这样。您现在可以打开xxx.png文件。这是一个纯图像文件。

注意:该实验仅包含1个文件,但是当请求中有多个文件上传时,该策略才有效。