最開發的項目,由於服務器部署環境非常復雜,構建本地環境非常困難。很自然地,fiddler的AutoResponse被用於文件映射,壹切都是那麽美好。由於頁面中引入了幾十個js文件,所以在映射文件時浪費了大量時間(即使直接修改my document/fiddler 2/autoresponder . XML也需要大量時間),非常不愉快。這些js在本地的目錄結構和服務器上的完全壹樣。Fiddler不能把壹個URL目錄直接映射到硬盤上的壹個目錄嗎?在網上找了很多資料,沒有找到現成的解決辦法。看來我得自己用腳本寫壹個規則了。
在菜單上按ctrl+R或Rules-& gt;自定義規則打開fiddler ScriptEditor。它封裝了兩種方法,即整個目錄替換和單個文件替換。(單個文件替換用fiddler的自動響應功能更強大。這裏我寫了壹個方法,不用打開fiddler的自動回復功能就能滿足我的簡單需求。)
在文件末尾添加以下代碼:
純文本
JAVASCRIPT:
/************************自定義規則********************/
/**
*替換為目錄
*
* @ param o Session { Session } Fiddler會話對象
* @param domain {String}需要替換的是本地文件的URL前綴(以斜杠結尾)。
* @param folder {String}本地文件目錄的物理路徑(兩個反斜杠表示壹個反斜杠,以反斜杠結尾)。
*/
靜態函數autoresponse folder(o Session:Session,domain:String,folder:String ) {
//獲取當前對話的完整URL。
var fullUrl:String = oSession。fullUrl
if ( fullUrl。StartsWith(域)){
var localPath:String = fullUrl。替換(域,文件夾);
//設置背景顏色
oSession [ 'ui-backcolor' ] = '貝殼';
//設置延遲
//oSession['響應-涓流-延遲']= 2000;
//替換服務器文件
o session[' x-reply with file ']= local path;
//寫日誌
//fiddler object . log(local path);
}
}
/**
*單個文件替換
*
* @ param o Session { Session } Fiddler會話對象
* @param找到{String}要替換的URL包含關鍵字。
* @param replacement {String}本地文件目錄的物理路徑(兩個反斜杠表示壹個反斜杠)。
*/
靜態函數自動響應(oSession: Session,found:String,replacement:String ) {
if ( oSession。uriContains(找到)){
//設置背景顏色
o session[' ui-back color ']= ' light green ';
//設置顏色
o session[' ui-color ']= ' black ';
//替換服務器文件
o session[' x-reply with file ']= replacement;
//寫日誌
//fiddler object . log(local path);
}
}
/**
*添加我自己的規則,
*映射了兩個文件test04.html和core.js。
*映射出新聞目錄/
*/
靜態函數AddRules ( oSession: Session ) {
//路徑和替換規則根據每個項目的實際情況進行替換。
var webroot:String = ' c:\ \ test \ \ ';
AutoResponse ( oSession,' search_noitem/?create=1 ',webroot+' AAA \ \ test 04 . html ');
AutoResponse ( oSession,' editor/core.js ',webroot+' BBB \ \ core . js ');
//需要替換的是本地文件的URL前綴(以斜杠結尾)。
var域:String = '/';
//本地文件目錄的物理路徑(兩個反斜杠代表壹個反斜杠,以反斜杠結尾)
var文件夾:String = webroot+' news \ \ ';
自動響應文件夾(會話、域、文件夾);
}
在OnBeforeRequest函數中調用AddRules,讓fiddler在發起請求之前使用剛剛添加的規則。
Ctrl+S保存,不用重啟fiddler直接刷新頁面就可以看到規則已經生效。為了醒目,我將目錄映射請求的背景色設置為紅色,單個文件映射請求的背景設置為綠色(fiddler AutoResponse agent的請求默認背景為灰色)。