美文网首页
Fiddler(八)| 脚本示例

Fiddler(八)| 脚本示例

作者: 夜境 | 来源:发表于2017-07-28 11:07 被阅读93次

    本文章转载于搜狗测试

    Fiddler在处理每个session时,脚本文件CustomRules.js中的方法都会运行,这些脚本可以使你任意修改复杂的session。通常,使用的比较多的都是用脚本来修改请求或响应

    两个重要的函数

    OnBeforeRequest

    请求经过Fiddler发送给服务器之前会先调用这个函数,因此,如果想要修改请求,可以写在这个函数里

    OnBeforeResponse

    从服务器读完响应后,且在将响应发送给客户端之前执行的。通过修改这个函数,可以修改服务器的响应头或者响应体

    一、修改请求的显示样式

    在Fiddler的FiddlerScript里面有一个Go to下拉框,可以选择OnBeforeRequest,然后定位到该方法里面,其中,如下Fiddler给出的一个脚本示例

    if(oSession.uriContains(".aspx")){ oSession["ui-color"]="red";}

    意思很明白,就是当请求中含有.aspx,将请求的颜色置为红色,根据示例,我们可以自己写一些其他的脚本,例如:

    if(oSession.uriContains("sogou")){ oSession["ui-backcolor"]="green";}

    修改之后点击FiddlerScript左上角的Save Script进行保存,访问搜狗的任意网站,就能看到这些包含sogou的请求的背景色被设置为绿色,相应的,也可以修改ui-bold使字体加粗

    二、修改请求

    客户端发请求http://www.sogou.com?c=XXX,其中,c=0,1。c=0在客户端能够模拟,但是c=1没办法在客户端模拟,这时,借助Fiddler就可以达到修改请求的目的

    if(oSession.uriContains("sogou")){

    oSession.url = "www.sogou.com?c=1";

    }

    三、切换HOST请求头

    当Fiddler接收到URL和Host请求头不匹配时,会在session的X-Original-Host标记中保存原始的Host值,然后用从URL解析到的Host 替换它。下面这段脚本会把请求发到原始Host请求头中指定的Host

    if (oSession.BitFlags & SessionFlags.ProtocolViolationInRequest){

    var sOverride = oSession["X-Original-Host"];

    if (!String.IsNullOrEmpty(sOverride)){

    oSession["X-overrideHost"] = sOverride;

    oSession["ui-backcolor"] = "yellow";

    }

    }

    四、隐藏返回图像的session

    if (oSession.oResponse.MIMEType.Contains("image"))

    {

    oSession["ui-hide"] = "Script hiding images";

    }

    相关文章

      网友评论

          本文标题:Fiddler(八)| 脚本示例

          本文链接:https://www.haomeiwen.com/subject/gpxjkxtx.html