菜鸟教程小白 发表于 2022-12-13 03:38:35

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


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

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

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

<ul>
<li>节流网络</li>
<li>设备调试</li>
<li>下载响应数据</li>
<li>...</li>
</ul>

<p>但是,Charles Proxy 4.x 中没有用于查看或下载 HTTP 请求中的文件的选项:
<a href="/image/01Gom.png" rel="noreferrer noopener nofollow"><img src="/image/01Gom.png" alt="Screenshot Charles Proxy 4.x Save/View Request"/></a> </p>

<p>Charles Proxy 4.x(及更早版本)允许保存响应文件,此屏幕截图中的示例 pdf:<a href="/image/9auRm.png" rel="noreferrer noopener nofollow"><img src="/image/9auRm.png" alt="Screenshot Charles Proxy 4.x Save/Copy Response"/></a> </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>这可以通过手动编辑二进制文件来完成。这有点棘手,但可以将文件保存在多部分 HTTP 请求中,而不需要对项目代码进行任何修改。</p>

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

<ol>
<li><p><strong>保存请求</strong>。右键单击记录的 HTTP 请求(发送文件的请求),然后单击“保存请求...”。这将以二进制格式保存整个 HTTP 请求。
<a href="/image/F06r7.png" rel="noreferrer noopener nofollow"><img src="/image/F06r7.png" alt="enter image description here"/></a> </p></li>
<li><p><strong>检查请求的十六进制表示</strong>。左键单击记录的 HTTP 请求,然后单击“请求”面板的“十六进制”选项卡。这将显示请求的二进制表示,以及一些已解析的文本。
<a href="/image/q0RXQ.png" rel="noreferrer noopener nofollow"><img src="/image/q0RXQ.png" alt="enter image description here"/></a> </p></li>
<li><p><strong>编辑保存的请求</strong>。使用支持二进制的编辑器(例如 Sublime Text)打开保存的请求(步骤 1)。然后,根据步骤 2 的结果删除所有非图像二进制代码。特别是删除(并包含)第一个空行之前的每个字节(在 macOS 和 Windows 中为 <code>0d0a0d0a</code>,<code>0a0a</code> 在 Linux 中),并删除尾部字节。例如,下面的截图表示步骤 2 的请求字节,选中的字节将被删除(请注意 <code>0d0a</code> 字节,因为本实验是在 Mac 上进行的):
<a href="/image/UHrME.png" rel="noreferrer noopener nofollow"><img src="/image/UHrME.png" alt="enter image description here"/></a>
...
<a href="/image/bHv80.png" rel="noreferrer noopener nofollow"><img src="/image/bHv80.png" alt="enter image description here"/></a> </p></li>
<li><p><strong>保存图片文件</strong>。步骤 3 完成后保存文件。然后,根据步骤2中的<code>Content-Type</code>值追加文件扩展名。在本实验中,<code>Content-Type</code>为<code>image/png</code>,所以 <code>.png</code> 被附加到文件名。</p></li>
</ol>

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

<p>注意:本实验仅包含1个文件,但该策略在请求中有多个文件上传时有效。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 通过网络代理工具下载或查看作为多部分请求(PNG、PDF)发送的文件?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/47685699/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/47685699/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 通过网络代理工具下载或查看作为多部分请求(PNG、PDF)发送的文件?