Fiddler脚本修改及替换Response数据

一、相关前提设置:

使用Fiddle对夜神模拟器进行抓包的设置

【Fiddler】改写返回数据功能

二、基本步骤(简单):

  Rule---打开并编辑Customize Rule文件,在方法 OnBeforeResponse 中插入修改代码,保存。

 static function OnBeforeResponse(oSession: Session) {
        if (m_Hide304s && oSession.responseCode == 304) {
            oSession["ui-hide"] = "true";
        }
		
		//var responseStringOriginal = "cat_id\":1cat_id\":12"; //正则测试
		//var responseStringOriginal = responseStringOriginal.replace(/cat_id\":\d{1,2}/g,"cat_id\":0");
		//FiddlerObject.log(responseStringOriginal); 
		
		
		// 判断是否为目标请求
		var isMusicRequest = false;
		if ((oSession.host == "api.petgame.net") &&                // host  
			oSession.fullUrl.Contains("/v1/catList"))   // url
		{   
			isMusicRequest = true;
			
		}
		   // 修改返回JSON串
		if (isMusicRequest)
		{

			
			 // 1, 获取Response Body中JSON字符串
			  var responseStringOriginal =  oSession.GetResponseBodyAsString(); 
			// FiddlerObject.log(responseStringOriginal);    // 可在控制台中输出Log
			//2,替换"cat_id":?? 为"cat_id":0
			var responseStringOriginal = responseStringOriginal.replace(/cat_id\":\d{1,2}/g,"cat_id\":0");
			FiddlerObject.log(responseStringOriginal); 
	
			FiddlerObject.log(responseStringOriginal);
			oSession.utilSetResponseBody(responseStringOriginal);
			
		}
			
    }

参考:

var str = "98dsfhasdf/ sadkfj/sdfa";
alert(str.replace(/\//g, ''));

正则替换 所有的 '/' 字符
正则基本规则 /匹配内容/ 前后各有两个'/'
因为 '/' 符号 和上面的规则冲突了
所以需要用 '\' 转义
例如要删除 '\' 则写 /\\/
后面的g代表删除所有匹配项,如果没有的话,就只删除第一个匹配项

参考:http://www.mamicode.com/info-detail-1176118.html    JSON添加一个字段和修改一个字段

发布了331 篇原创文章 · 获赞 140 · 访问量 71万+

猜你喜欢

转载自blog.csdn.net/chenhao0568/article/details/94659691