Fiddler中文版脚本编辑器完全指南:自定义规则和过滤器
Fiddler中文版脚本编辑器完全指南:自定义规则和过滤器
【免费下载链接】zh-fiddlerFiddler Web Debugger 中文版项目地址: https://gitcode.com/gh_mirrors/zh/zh-fiddler
Fiddler Web Debugger 中文版是一款强大的Web调试工具,其内置的脚本编辑器允许用户通过自定义规则和过滤器来扩展功能,满足个性化调试需求。本文将详细介绍如何使用Fiddler中文版的脚本编辑器,从基础操作到高级规则编写,帮助新手用户快速掌握自定义调试技巧。
认识Fiddler脚本编辑器
Fiddler脚本编辑器是修改和扩展Fiddler功能的核心工具,通过编写C#或JavaScript脚本,可以实现请求/响应拦截、数据修改、自动化测试等高级功能。脚本文件位于项目的Scripts目录下,主要包含以下两个示例文件:
- SampleRules.cs:C#版本的规则示例,支持Windows和Mono平台
- SampleRules.js:JavaScript版本的规则示例,主要用于Windows平台
打开脚本编辑器的两种方式
- 启动Fiddler后,点击菜单栏工具 > Fiddler Script
- 直接运行项目根目录下的Fiddler ScriptEditor 编辑器绿化工具.exe
脚本基础结构解析
Fiddler脚本采用事件驱动模型,核心是Handlers类中的几个关键函数,通过重写这些函数可以实现对HTTP请求/响应的控制:
核心事件函数
- OnBeforeRequest:请求发送到服务器前触发,可用于修改请求头、URL重写等
- OnBeforeResponse:服务器响应返回客户端前触发,可用于修改响应内容、过滤响应等
- OnExecAction:处理QuickExec命令行指令,实现自定义快捷操作
示例:隐藏304响应
在SampleRules.js中,以下代码实现了隐藏304 Not Modified响应的功能:
public static RulesOption("隐藏 304s") BindPref("fiddlerscript.rules.Hide304s") var m_Hide304s: boolean = false; static function OnBeforeResponse(oSession: Session) { if (m_Hide304s && oSession.responseCode == 304) { oSession["ui-hide"] = "true"; } }实用自定义规则示例
1. 模拟网络延迟(调制解调器速度)
通过设置请求/响应延迟,可以模拟低速网络环境,测试应用性能:
if (m_SimulateModem) { // 上传延迟:每KB延迟300ms oSession["request-trickle-delay"] = "300"; // 下载延迟:每KB延迟150ms oSession["response-trickle-delay"] = "150"; }在Fiddler界面中,通过规则 > 性能 > 模拟调制解调器速度菜单启用此功能。
2. 修改User-Agent伪装浏览器
脚本编辑器预置了25种常见User-Agent,可通过规则菜单快速切换:
RulesString("&用户代理", true) RulesStringValue(0,"Netscape &3", "Mozilla/3.0 (Win95; I)") RulesStringValue(1,"WinPhone8.1", "Mozilla/5.0 (Mobile; Windows Phone 8.1; ...") // 更多浏览器类型... public static var sUA: String = null;使用时只需在规则 > 用户代理子菜单中选择目标浏览器即可。
3. 自动响应认证请求
配置自动认证可避免重复输入用户名密码:
if (m_AutoAuth) { // 使用当前用户凭据自动响应认证请求 oSession["X-AutoAuth"] = "(default)"; }通过规则 > 自动验证菜单启用该功能。
高级过滤器编写技巧
URL替换与重定向
通过urlreplace命令可以临时修改请求URL,常用于测试环境切换:
case "urlreplace": if (sParams.Length<3) {gs_ReplaceToken=null; return false;} gs_ReplaceToken = sParams[1]; gs_ReplaceTokenWith = sParams[2].Replace(" ", "%20"); FiddlerObject.StatusText="替换 [" + gs_ReplaceToken + "] 为 [" + gs_ReplaceTokenWith + "]"; return true;使用方法:在QuickExec框中输入urlreplace 旧字符串 新字符串
请求断点设置
通过脚本可以针对特定URL或状态码设置断点,方便调试:
if ((null!=bpRequestURI) && oSession.uriContains(bpRequestURI)) { oSession["x-breakrequest"]="uri"; }常用断点命令:
bpu 包含字符串:对包含指定字符串的请求设置断点bps 状态码:对指定响应状态码设置断点bpm POST:对POST方法设置断点
脚本调试与管理
脚本重置与重载
当脚本编辑出现错误时,可以通过以下方式恢复:
- 点击工具 > 重置脚本
- 直接删除
Documents\Fiddler2\Scripts\CustomRules.js文件,重启Fiddler会自动生成默认脚本
常用工具辅助
项目提供了多个辅助工具,位于Tools目录下:
- Brotli.exe:Brotli压缩工具
- PngDistill.exe:PNG图片优化工具
- Zopfli.exe:Zopfli压缩工具
这些工具可在脚本中通过System.Diagnostics.Process.Start()调用,实现自动化资源处理。
总结与扩展
Fiddler脚本编辑器是提升Web调试效率的强大工具,通过本文介绍的基础规则和示例,您可以实现请求过滤、响应修改、网络模拟等实用功能。对于高级用户,还可以探索更多高级用法:
- 编写自定义UI选项卡(通过
BindUITab属性) - 创建自定义上下文菜单(通过
ContextAction属性) - 实现复杂的请求路由和负载测试
建议从修改示例规则开始,逐步掌握脚本编写技巧,最终打造适合自己工作流程的调试环境。
【免费下载链接】zh-fiddlerFiddler Web Debugger 中文版项目地址: https://gitcode.com/gh_mirrors/zh/zh-fiddler
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考