2011-10-06 137 views
16

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

+0

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

回答

4

在Fiddler的脚本:(小提琴手中:规则...自定义规则),找到OnBeforeRequest功能,并添加相似的一行:

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

我敢肯定,这是在一个新功能因为这个问题被回答了一年,但我认为我会添加它:

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

< @INCLUDE C:\一些\路径\ MY-image.jpg的 @>

在我我只是想直接发布二进制文件而没有多部分垃圾,所以我只是把< @INCLUDE ... @>魔术放在请求体中,并将​​二进制文件作为主体发送。

11

为了发送multipart/form-data,这receipe会有所帮助。

在上面的面板(Http header)中,如下设置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. 身体的最后部分应以两个-标志结尾。
1

自2.0版本以来,请求主体有一个“上传文件...”链接,允许您发布/上传二进制数据。