2011-10-06 82 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版本以來,請求主體有一個「上傳文件...」鏈接,允許您發佈/上傳二進制數據。