Fiddler将二进制文件数据添加到POST

时间:2011-10-06 00:35:32

标签: file-upload binary fiddler

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

4 个答案:

答案 0 :(得分:37)

我确信自从这个问题得到解答以来,这是今年的新功能,但我想无论如何都会添加它:

现在,URL文本框右侧的Composer中有一个蓝色的“[上传文件]”链接。这将创建完整的multipart / form-data请求。如果你使用它,你会注意到你的身体现在有这样的东西:

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

在我的情况下,我只是想直接发布二进制文件,没有多部分垃圾,所以我只是把< @INCLUDE ... @>请求正文中的魔法,并将二进制文件作为正文发送。

答案 1 :(得分:12)

为了发送 multipart / form-data ,我们会帮助您提供这种收据。

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

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

并在下面的面板中输入Response Body,如下所示。

---------------------------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. 身体的最后一个应以两个-标志结束。

答案 2 :(得分:5)

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

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

答案 3 :(得分:1)

从版本2.0开始,请求正文有一个&#34;上传文件...&#34;允许您发布/上传二进制数据的链接。