Fiddler的AutoResponder 选项卡允许你使用本地硬盘的文件来作为返回内容,而不是把请求发往服务器。
创建AutoResponder 规则:使用AutoResponder选项卡,你可以创建一个匹配规则和一个响应字符串,如果请求的URL地址跟你的匹配规则相匹配,Fiddler就会自动执行这个对应的响应字符串。
①匹配规则
1、纯粹字符串匹配
Fiddler将会按照不区分字母大小写来匹配字符串。
Demo如下:
规则 |
匹配项 |
* |
匹配所有接收到的请求 |
EXAMPLE |
不区分大小写匹配含有example的请求:http://www.example.com/Path1/query=example |
path1/ |
不区分大小写匹配含有path1/的请求:http://www.example.com/Path1/query=example |
query |
不区分大小写匹配含有query的请求:http://www.example.com/Path1/q=Query |
2、前缀NOT匹配
跟上面的类似,Fiddler还有一个非字符串匹配的规则:NOT:该规则会匹配url中不含给定字符的所有请求
Demo如下:
规则 |
匹配项 |
NOT:EXAMPLE |
不区分大小写匹配不含example的请求:http://www.test.com/Path1/query=test |
NOT:path1/ |
不区分大小写匹配不含path1/的请求:http://www.example.com/Path2/query=example |
3、前缀EXACT匹配
表达式以EXACT:为前缀,此匹配区分字母大小写
规则 |
匹配项 |
EXACT:http://www.example.com/path |
http://www.example.com/path |
EXACT:http://www.example.com/path |
http://www.example.com/Path (不匹配- 大小写不一样) |
4、前缀REGEX匹配
正则表达式:Fiddler支持以regex:为前缀的正则表达式语法,
使用.+匹配一个或多个字符,
使用.*匹配0个或多个字符,
使用^匹配字符串开始位置,
使用$匹配字符串结尾位置。
Demo如下:
规则 |
匹配项 |
regex:.+ |
任何包含一个或多个字符的url http://www.example.com/Path1/query=example |
regex:.+\.jpg.* |
任何在一个或多个字符后至少包含.jpg的url http://www.example.com/Path1/query=foo.jpg&bar |
regex:.+\.jpg$ |
任何以.jpg结尾的url http://www.example.com/Path1/query=foo.jpg&bar (No Match - improper ending) |
regex:.+\.(jpg|gif|bmp)$ |
任何以.jpg或.gif或.bmp结尾的url http://www.example.com/Path1/query=foo.bmp&bar (No Match - improper ending) |
regex:(?insx).+\.(jpg|gif|bmp)$ |
任何以.jpg或.gif或.bmp结尾的url,且大小写不敏感 http://www.example.com/Path1/query=foo.bmp&bar (No Match - improper ending) |
※注:选项字符串(?insx)的功能如下:它会启动大小写敏感限制,要求显示捕获组,支持单行语义,支持使用#符号添加注释
主要是想讲下这个正则匹配的用法,其实还有很多 ,这里就是举一些例子
②设置响应字符串
一些返回的actiontext如下
Action String… |
Result |
filename |
返回文件内容作为消息响应 |
http://targetURL |
返回此URL的内容作为消息响应 |
*redir:http://targetURL |
返回一个跳转URL,注意,不是一般的URL,一定要确保此URL知道要到哪里去,以便携带上相关的Cookie信息。 |
*bpu |
设置一个断点在发往服务器以前停住此请求Non-final action. |
*bpafter |
设置一个断点在接收响应之前停住此请求Non-final action. |
*delay:#### |
设置在发给服务器之前的延时,以毫秒为单位。Non-final action. |
*header:Name=Value |
设置请求头的内容,如果没有那个请求头,则新建一个请求头Name并设置为ValueNon-final action. |
*flag:Name=Value |
设置Session Flag的内容,如果没有那个Session Flag,则新建一个Session FlagName并设置为ValueNon-final action. |
*CORSPreflightAllow |
返回一个响应标志 CORS 是否被允许。. |
*reset |
使用一个TCP/IP RST 重新设置客户端的链接。 |
*drop |
马上关闭客户端链接。 |
*exit |
这时候停止处理匹配。 |
※注:标蓝色区域的内容为平时较常用的部分
还有个方法是在返回设置新建个规则,
然后在text’文本处编写想要返回的json即可
写好规则后,也可以右键规则进行修改:
延迟相应的方法如下
在一个请求返回来之前你可以设置一下请求延迟返回的时间。选中Enable Latency 复选框,可以设置所有的规则的延迟。
右键单击一个或者多个规则,然后选择 Set Latency 就可以设置具体的延迟时间。如果你想调整现存的延迟时间,只需要输入一个带有+或者-号的数字即可。
如果你想在现在的延迟时间基础上面减少500毫秒,那么在弹出的输入框中输入-500即可。
设置断点可以在使程序在断点处停止,可以查看程序的状态,修改数据流,以改变程序的行为
下面是在fiddler中设置断点的位置
首先可以在quicktext命令行输入断点,这样在web sessions之前或之后的sessions会被中断
或者是在AutoResponder中设置断点,这样在后续遇到这样的请求就会被中断
Sessions执行过程中设置断点的位置:
1)从客户端读到请求后,在请求发给服务器之前
2)在服务器发回响应后,在响应回传给客户端前
以1)为例:设置断点后,sessions请求会被中断,session显示中断的图标,点击这个session
出现下面的内容
在view选项卡选择webform后,可以看到请求的参数,这时候参数可以进行修改
修改参数后下方有三个选项:
①Break On Response
这个选项可以继续在返回客户端前面加断点
②Run to Completiopn
这个可以按照这个更改参数后继续提交请求
③Choose response…
这个可以展出上下文菜单,里面有各种返回的HTTP请求,可以选择特定的请求返回,也可以按照自己自定义的特定文件来返回
有时候两个请求比较相似,想找出区别,可以下载插件winziff,下载地址是
http://www.grigsoft.com/download-windiff.htm
下载以后,放到tools- fiddler option tool文件夹下,这个把,得下载插件才能用,就根据提示下载就行、没啥好说的
设置好路径后就可以使用了
使用方法是勾选两个sesisons,然后右键,点击compare,然后出警告框以后直接运行就可以。
从上面红色和蓝色的内容就可以看出请求中发送的和收到的参数及返回值是不一样的