OStack程序员社区-中国程序员成长平台

标题: ios - 通过网络代理工具下载或查看作为多部分请求(PNG、PDF)发送的文件? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 03:38
标题: ios - 通过网络代理工具下载或查看作为多部分请求(PNG、PDF)发送的文件?

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

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

macos 上的 Charles Proxy 足以满足大多数开发/QA 需求,例如:

但是,Charles Proxy 4.x 中没有用于查看或下载 HTTP 请求中的文件的选项: Screenshot Charles Proxy 4.x Save/View Request

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



Best Answer-推荐答案


这可以通过手动编辑二进制文件来完成。这有点棘手,但可以将文件保存在多部分 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 中为 0d0a0d0a0a0a 在 Linux 中),并删除尾部字节。例如,下面的截图表示步骤 2 的请求字节,选中的字节将被删除(请注意 0d0a 字节,因为本实验是在 Mac 上进行的): enter image description here ... enter image description here

  4. 保存图片文件。步骤 3 完成后保存文件。然后,根据步骤2中的Content-Type值追加文件扩展名。在本实验中,Content-Typeimage/png,所以 .png 被附加到文件名。

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

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

关于ios - 通过网络代理工具下载或查看作为多部分请求(PNG、PDF)发送的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47685699/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4