在Rules菜单下:
此次更改请求 头 ,so go to OnBeforeRequest
-更改RequestHeaders中的内容
比如 更改www.baidu.com的“User-Agent”
if(oSession.host=="www.baidu.com"){//根据host判断
oSession.RequestHeaders.Remove("User-Agent");
oSession.RequestHeaders.Add("User-Agent","Dalvik/2.1.0 (Linux; U; Android 9.0.1; onePlus666 Build/MOB31K)");
}
ctrl+s保存后,再用浏览器刷新百度。出现↓
还可以这样玩
- 修改requestBody中的JSON数据
还是在模拟器里的app抓吧
找一个带JSON数据的head。
可以在textview中把文本复制下来,修改后
加入OnBeforeRequest
代码块
if(oSession.fullUrl.Contains("/api/v9/login")){//根据fullUrl判断是否包含此串
var mylogin='{"device_model":"onePlus3T","imei":"","loginType":1,"mac_address":"08:3A:C2:3E:F3:BE","os_version":"9.0.1"}';//更改后的JSON数据
var requestJson=Fiddler.WebFormats.JSON.JsonDecode(mylogin);
var reJsonDes=Fiddler.WebFormats.JSON.JsonEncode(requestJson.JSONObject);
oSession.utilSetRequestBody(reJsonDes);
}
保存,再次登录 就会发现请求信息//
-更改ResponseBody中JSON数据
Go->go to OnBeforeResponse定位到OnBeforeResponse函数
代码示例:
if(oSession.fullUrl.Contains("需修改url包含的标志性字段")){
var reponseJsonString=oSession.GetResponseBodyAsString();//获取JSON字符串
var responseJSON=Fiddler.WebFormats.JSON.JsonDecode(reponseJsonString);//转化为JSON数据,可编辑
var str='{"key":"value"}';//自定义JSON
responseJSON.JSONObject['data']= Fiddler.WebFormats.JSON.JsonDecode(str).JSONObject ;//转换需要
var myResponseJSON= Fiddler.WebFormats.JSON.JsonEncode(responseJSON.JSONObject);//转换需要
oSession.utilSetResponseBody(myResponseJSON);//设置ResponseBody中的JSON数据
}
这里没有对原JSON数据修改,而直接定义了新的JSON数据替换