Fiddler2 AutoResponder 页签

优质
小牛编辑
128浏览
2023-12-01

完整页签如下图:

此功能启用后,可以将某一请求的响应结果替换成指定的资源,可以是本地文件,也可以是 Fiddler 内置的各种 HTTP 响应。主要用于临时拦截某一请求的响应,而无需修改服务器上的环境和代码,保证在最真实的环境中进行调试,也无需在 BUG 查找的时候就寻求相关部门的配合。

· 启用该功能,请将 Enable automatic responses 打勾。

· Permit passthrough for unmatched requests 表示允许未匹配到的请求正常响应。应该打勾才能让其他的请求继续;否则其他未匹配到的请求都会以 404 状态返回。

· 页签中间是一个列表,显示当前创建的匹配规则,左侧是匹配的条件,右侧是响应的结果。即:如果请求的地址包含左侧的字符串,那么就用右边设定的资源来替换来自服务器的响应。用 + 和 - 两个按键可以调整当前选择规则在列表中的位置。

· 页签底部是一个规则编辑器,可以进行编辑当前用户选择的匹配规则、保存编辑、删除此匹配规则等操作。

第一个 Combox 是匹配的条件,可以自行输入字符串,也可以选择 Fiddler 内置的三个正则(都是匹配图片的,没什么用)。Fiddler 支持几种匹配模式:

  1. 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
  2. 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(有多余字符串)
  3. 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 按钮是删除此匹配规则。

增加匹配规则

  1. 点击 Add... 按钮,新增一条规则。

    此时会激活页签底部的 Rule Editor。如果你在 Web Sessions 面板里选择了一个 Session,则匹配规则是该 Session 的 URL,否则是 StringtoMatch[数字]。然后可以使用 Rule Editor 编辑它。

  2. 点击 Import... 按钮,导入在 Web Sessions 中保存下来的压缩包 (*.saz)。
  3. 在 Web Sessions 面板中选择你要捕获的请求,直接拖拽到 AutoResponder 的列表中。