2014-01-17 45 views
1

我想保存所有與一些網頁一起加載到一個單獨的文件夾的PNG圖像。 我在下面的代碼中使用了Fiddler Script [CustomRules.js]。提琴手腳本 - SaveResponseBody()

static function OnBeforeResponse(oSession: Session) 
{ 
if(oSession.url.EndsWith(".png"))  
{ 
oSession.SaveResponseBody(); 
} 
//Actual content of OnBeforeResponse function. 
} 

這裏的問題是,我找不到任何保存在程序文件/文件中的圖像。

「SaveResponseBody()」將保存HTTP響應正文的位置?

我們可以給我們自己的自定義文件夾嗎?

我的提琴手版(v4.4.5.6)

回答

2

默認SaveResponseBody()方法把文件保存到您的\Documents\Fiddler2\Captures\文件夾。如果您想使用不同的名稱,請使用接受文件名的重載。您應該檢查響應的狀態代碼是200,以確保您不試圖保存不包含身體的HTTP/304響應。另外,您可能不想查看網址,而是想檢查響應的類型。

所以,你最終的東西是這樣的:

if ((oSession.responseCode == 200) && 
    oSession.oResponse.headers.ExistsAndContains("Content-Type", "image/png")) 
{ 
    SaveResponseBody("C:\\temp\\" + oSession.SuggestedFilename); 
} 

注:這樣做的手工方式是去QuickExec框下面的Web會話列表,請鍵入select png並按下回車鍵,然後單擊文件>導出>選定會話>原始文件。

+0

謝謝埃裏克,它正在爲我工​​作。有什麼辦法可以保存大於特定尺寸的圖像嗎? [所以我可以跳過圖標等] –

+0

有時,我看到錯誤(Windows警報) - 保存失敗 - 無法找到路徑'D:\ temp \'的一部分。如何解決這個問題? –

+0

使用'oSession.responseBodyBytes.Length'作爲標準來限制導出到一定大小的圖像。要解決缺少的路徑問題,請確保存在'D:\ temp \'。 – EricLaw