Fiddler2 AutoResponder 页签
完整页签如下图:
此功能启用后,可以将某一请求的响应结果替换成指定的资源,可以是本地文件,也可以是 Fiddler 内置的各种 HTTP 响应。主要用于临时拦截某一请求的响应,而无需修改服务器上的环境和代码,保证在最真实的环境中进行调试,也无需在 BUG 查找的时候就寻求相关部门的配合。
· 启用该功能,请将 Enable automatic responses 打勾。
· Permit passthrough for unmatched requests 表示允许未匹配到的请求正常响应。应该打勾才能让其他的请求继续;否则其他未匹配到的请求都会以 404 状态返回。
· 页签中间是一个列表,显示当前创建的匹配规则,左侧是匹配的条件,右侧是响应的结果。即:如果请求的地址包含左侧的字符串,那么就用右边设定的资源来替换来自服务器的响应。用 + 和 - 两个按键可以调整当前选择规则在列表中的位置。
· 页签底部是一个规则编辑器,可以进行编辑当前用户选择的匹配规则、保存编辑、删除此匹配规则等操作。
第一个 Combox 是匹配的条件,可以自行输入字符串,也可以选择 Fiddler 内置的三个正则(都是匹配图片的,没什么用)。Fiddler 支持几种匹配模式:
- String Literals —— 字符匹配
这种模式将匹配指定的字符串,不存在大小写敏感。范例:
*
通配符,匹配任何地址,如: http://www.example.com/Path1/query=example
EXAMPLE
匹配 http://www.example.com/Path1/query=example
path1/
匹配 http://www.example.com/Path1/query=example
query
匹配 http://www.example.com/Path1/q=Query - Exact Match —— 精确匹配
这种模式一 EXACT: 开头,将严格匹配字符串,包括大小写。范例:
EXACT:http://www.example.com/path
匹配 http://www.example.com/path
不匹配 http://www.example.com/Path(大小写不符)
不匹配 http://www.example.com/path/q=Query(有多余字符串) - Regular Expressions —— 正则表达式
这种模式一 regex: 开头,使用正则表达式来匹配 session 的 URL。范例:
regex:.*
通配符,匹配任何地址,如 http://www.example.com/Path1/query=example
regex:.*\.jpg —— 匹配包含 .JPG 的 URL
匹配 http://www.example.com/Path1/query=foo.jpg&bar
匹配 http://www.example.com/Path1/query=example.jpg
regex:.*\.jpg$ —— 匹配 .jpg 结束的 URL
不匹配 http://www.example.com/Path1/query=foo.jpg&bar(不是 .jpg 结尾)
匹配 http://www.example.com/Path1/query=example.jpg
regex:.*\.(jpg|gif|bmp)$ —— 匹配 .jpg 或 .gif 或 .bmp 结束的 URL
不匹配 http://www.example.com/Path1/query=foo.bmp&bar(不是 .bmp 结尾)
匹配 http://www.example.com/Path1/query=example.gif
不匹配 http://www.example.com/Path1/query=example.Gif (是 .gif 结尾,但大小写不匹配)
匹配 http://www.example.com/Path1/query=example.bmp
regex:(?insx).*\.(jpg|gif|bmp)$ —— 匹配 .jpg 或 .gif 或 .bmp 结束的 URL,忽略大小写
不匹配 http://www.example.com/Path1/query=foo.bmp&bar(不是 .bmp 结尾)
匹配 http://www.example.com/Path1/query=example.gif
匹配 http://www.example.com/Path1/query=example.Gif
匹配 http://www.example.com/Path1/query=example.bmp
最后一个正则中的 ?insx 是正则表达式的语法,其中各字母的含义如下(详见:正则表达式选项):
- i —— 指定不区分大小写的匹配
- m —— 指定多行模式。更改 ^ 和 $ 的含义,以使它们分别与任何行的开头和结尾匹配,而不只是与整个字符串的开头和结尾匹配。
- n —— 指定唯一有效的捕获是显式命名或编号的 (?<name>…) 形式的组。这允许圆括号充当非捕获组,从而避免了由 (?:…) 导致的语法上的笨拙。
- s —— 指定单行模式。更改句点字符 (.) 的含义,以使它与每个字符(而不是除 \n 之外的所有字符)匹配。
- x —— 指定从模式中排除非转义空白并启用数字符号 (#) 后面的注释。(有关转义空白字符的列表,请参见字符转义。)请注意,空白永远不会从字符类中消除。
第二个 Combox 是响应的结果,可以选择:Fiddler 内置的 HTTP 200/204/302/303/304/307/401/403/404/407/502 等各种响应范例、*bpu 和 *bpafter( 表示在此中断,关于 bpu 和 bpfater 见 QuickExec 命令参考)、本地文件 (Find a file...)。
Save 按钮是保存对此匹配规则的修改,Remove 按钮是删除此匹配规则。
增加匹配规则
- 点击 Add... 按钮,新增一条规则。
此时会激活页签底部的 Rule Editor。如果你在 Web Sessions 面板里选择了一个 Session,则匹配规则是该 Session 的 URL,否则是 StringtoMatch[数字]。然后可以使用 Rule Editor 编辑它。
- 点击 Import... 按钮,导入在 Web Sessions 中保存下来的压缩包 (*.saz)。
- 在 Web Sessions 面板中选择你要捕获的请求,直接拖拽到 AutoResponder 的列表中。