Fiddler Script的本質是用JScript.NET編寫的一個指令碼檔案CustomRules.js
但是它的語法很像C#但又有些不一樣,比如不能使用@符號
透過修改CustomRules.js可以靈活修改請求報文和響應報文,也無需中斷程式。同時也可以利用它針對不同的URL做各種特殊處理。
Fiddler安裝時已經自帶了Fiddler ScriptEditor,可檢視包含的各類變數和方法,十分方便。
下面是我針對於op的概覽頁面,使用正則替換了其中的溫度資料的程式碼。
static function OnBeforeResponse(oSession: Session) {
if (oSession.uriContains("openwrt.com") )
{
// 獲取響應體
var responseBody = oSession.GetResponseBodyAsString();
// 建立隨機數生成器
var random = new System.Random();
// 生成 0.0 到 1.0 之間的隨機小數
var randomDouble = random.NextDouble();
// 將隨機小數調整到 -10.0 到 -8.0 的範圍
// -10.0 + (2.0 * randomDouble) 將隨機數縮放到 -10.0 到 -8.0
var randomNumber = -10.0 + (2.0 * randomDouble);
// 列印日誌響應體
FiddlerApplication.Log.LogString("responseBody: " + "[\\S]*℃");
// 進行正規表示式替換
// 在 C# 中使用 System.Text.RegularExpressions.Regex
var regex = new System.Text.RegularExpressions.Regex("[\\S]*℃");
responseBody = regex.Replace(responseBody, randomNumber.ToString("F1") + "℃");
// 將修改後的內容寫回響應體
oSession.utilSetResponseBody(responseBody);
}
}