【问题标题】:Fiddler add binary file data to POSTFiddler 将二进制文件数据添加到 POST
【发布时间】:2011-12-01 22:13:39
【问题描述】:

我尝试将二进制文件数据直接添加到 POST 调用的请求正文中,以便模拟文件上传。但是,我尝试设置一个“请求前”断点并使用“插入文件”,但我似乎无法让它工作。我还尝试修改 CustomRules.js 以注入文件,但无法弄清楚如何通过 JScript 加载二进制数据。这里有简单的解决方案吗?

【问题讨论】:

  • 你在做什么类型的上传(例如到什么服务器)?不同的服务器接受不同的格式。最好的办法是篡改现有上传,但可以使用 Fiddler 生成格式正确的上传。

标签: file-upload binary fiddler


【解决方案1】:

我确信这是自回答此问题以来的一年中的一项新功能,但我想无论如何我都会添加它:

现在 Composer 中有一个蓝色的“[上传文件]”链接,位于 URL 文本框的右侧。这将创建一个完整的多部分/表单数据请求。如果你使用它,你会注意到你现在有一些看起来像这样的东西:

C:\Some\Path\my-image.jpg@>

在我的例子中,我只是想直接发布二进制文件而没有多部分垃圾,所以我只是将 魔术放在请求正文中,然后将二进制文件作为正文发送。

【讨论】:

  • ~~现在消失了吗?好像没有啊~~
  • 不,它没有。它只是两个输入窗口之间的微小蓝色文本(如链接文本)
【解决方案2】:

为了发送multipart/form-data,此收据将得到帮助。

在上面板(Http 标头)中,设置Content-Type 如下。其他值会自动解析。

Content-Type: multipart/form-data; boundary=-------------------------acebdf13572468

然后,在下面的面板中输入响应正文,如下所示。

---------------------------acebdf13572468
Content-Disposition: form-data; name="description" 

the_text_is_here
---------------------------acebdf13572468
Content-Disposition: form-data; name="file"; filename="123.jpg"
Content-Type: image/jpg

<@INCLUDE *C:\Users\Me\Pictures\95111c18-e969-440c-81bf-2579f29b3564.jpg*@>
---------------------------acebdf13572468--

导入规则是,

  1. Content-Type 应该比正文中的边界词多两个 - 符号。
  2. 正文的最后应以两个- 符号结束。

【讨论】:

    【解决方案3】:

    在 Fiddler 脚本中:(在 Fiddler: Rules... Customize Rules)中,找到 OnBeforeRequest 函数,添加类似如下的一行:

    if (oSession.uriContains("yourdomain"))
    {
        oSession.LoadRequestBodyFromFile("c:\\temp\\binarycontent.dat");    
    }
    

    【讨论】:

      【解决方案4】:

      从 2.0 版开始,请求正文有一个“上传文件...”链接,允许您发布/上传二进制数据。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多