FiddlerScript详解

FiddlerScript详解

2017年11月08日 12:50:36 丫丫博客 阅读数:2580

 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_38208401/article/details/78471005

1、下载FiddlerScript插件安装至Fiddler目录

2、重启Fiddler即可

这里写图片描述

  • ClassView展开API接口含义及使用方法

3、简介

FiddlerScript提供了请求/响应过程中的事件接口,通过这些接口,我们可以编写代码,注册自定义逻辑

4、OnBeforeRequest:每次请求之前调用

1)修改JSON参数

if(oSession.fullUrl.Contains("/api/v1/auth")){//根据fullUrl判断是否包含此串
    var mylogin='{"username":"15575474050","password":"e10adc3949ba59abbe56e057f20f883e","captcha":null}';//更改后的JSON数据
    var requestJson=Fiddler.WebFormats.JSON.JsonDecode(mylogin);
    var reJsonDes=Fiddler.WebFormats.JSON.JsonEncode(requestJson.JSONObject);
    oSession.utilSetRequestBody(reJsonDes);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

使用任一账号登录,执行的结果均是: 
这里写图片描述

2)将baidu的请求转发至hao123

if(oSession.HostnameIs("www.baidu.com")){
    oSession.hostname = "www.hao123.com";    
}
  • 1
  • 2
  • 3

执行结果: 
这里写图片描述

3)修改Headers 
这里写图片描述
4)增加Headers:oSession.oRequest.headers.Add(“hi”,”test”) 
5)删除Headers:oSession.oRequest.headers.Remove[“host”];

5、OnBeforeResponse:每次响应之前调用

1)修改JSON返回值

if(oSession.fullUrl.Contains("/com/apis?api=RESOURCE_LIST&id=2616&type=0")){//根据fullUrl判断是否包含此串
    var reponseJsonString=oSession.GetResponseBodyAsString();//获取JSON字符串
    var responseJSON=Fiddler.WebFormats.JSON.JsonDecode(reponseJsonString);//转化为JSON数据,可编辑
    var str='{"videos":[{"duration":157,"id":1837,"name":"平均数FiddlerScript","pay":0,'+
    '"photoUrl":"http://v.leleketang.com/dat/ms/ma/k/thumb/18748.jpg","resourceCode":"LLKT_01",'+
    '"showOrder":1,"videoUrl":"http://v.leleketang.com/dat/ms/ma/k/video/18748.mp4"}]}';//自定义JSON
    responseJSON.JSONObject['data']= Fiddler.WebFormats.JSON.JsonDecode(str).JSONObject ;//转换需要          
    var myResponseJSON= Fiddler.WebFormats.JSON.JsonEncode(responseJSON.JSONObject);//转换需要
    oSession.utilSetResponseBody(myResponseJSON);//设置ResponseBody中的JSON数据
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

执行结果: 
这里写图片描述

扫描二维码关注公众号,回复: 6012969 查看本文章

2)将baidu网页请求返回的数据进行修改

if (oSession.HostnameIs("www.baidu.com") && oSession.oResponse.headers.ExistsAndContains("Content-Type","text/html")){
     oSession.utilDecodeResponse(); //解码 
     oSession.utilReplaceInResponse("手机百度","嘿嘿");
}
  • 1
  • 2
  • 3
  • 4

执行结果: 
这里写图片描述

猜你喜欢

转载自blog.csdn.net/ljw5888/article/details/89449137