又到了周五啦,辛苦了一周,大家是否感觉到疲劳呢?轻松一下,今天跟大家聊一个fiddler中拦截请求的小技巧。
言归正传
经过以往的学习,大家可能都知道,fiddler可以通过修改AutoResponder的规则,拦截请求和模拟返回结果。其中拦截这块,可以根据url的差异化,自定义各种拦截方式,比如下面例子:
需要拦截的请求:
http://nihao.sogou.com/index.php?first=hello
http://nihao.sogou.com/index.php?first=good
http://nihao.sogou.com/index.php?first=nice
设置规则:
想要分别拦截上述3条url,我们可以这样设置拦截的规则:
regex:.*nihao.sogou.com/index.php.first=h.*
regex:.*nihao.sogou.com/index.php.first=g.*
regex:.*nihao.sogou.com/index.php.first=n*
备注:使用regex时,“?”要换成“.”
规则示例:
结果示例:
问题来了
上面的操作,估计大家已经是各种666了。但是突然有一天,开发跟你说,我把请求改了,从get变post,以后这三个请求的url都长一样,全是http://nihao.sogou.com/。之前url中的差异化参数(first=hello、first=good、first=nice)放到body里了。以前设置的规则用不啦,这时候你什么感觉?心中一紧的有没有?咋办呢?其实很好解决。
解决方案
fiddler中有个自带的规则URLWithBody:Upload.phpregex:^.*BodyText.*$(如下图)能够很好的解决这个问题
具体操作?不废话,直接上实例说明:
需要拦截的请求:
http://nihao.sogou.com/ body的内容:first=hello
http://nihao.sogou.com/ body的内容:first=good
http://nihao.sogou.com/ body的内容:first=nice
设置规则:
URLWithBody:nihao.sogou.com regex:.*hello.*
URLWithBody:nihao.sogou.com regex:.*good.*
URLWithBody:nihao.sogou.com regex:.*nice.*
规则示例:
结果示例:
此外url部分使用正则表达式,依然有效,例如: