fiddler如何修改返回值

一、修改接口返回值,可以通过打断点的方式,查看返回值。但是一般修改返回值都是需要查看前端效果,而前端一般都有请求时间。所以推荐以下方式

1、首先抓包,确定要修改的接口,拿到正常的返回值

2、选中该请求,之后点击AutoResponder中Add Rule:

3、之后在Rule Editor中的第二栏选择“Create New Response...”:


4、点击Save,会弹出一个窗口,在弹窗中选择Raw栏,将抓包抓到的请求对应的Raw栏内容复制粘贴进去,然后将其中想要修改的部分进行修改,然后点击“Save”进行保存:


5、之后利用客户端请求此接口时,就会自动返回我们设置的值

二、利用script修改

Fiddler抓包工具,修改CustomRules.js脚本达到修改Http请求的Response中Body信息(如JSON串)

1、打开并编辑Customize Rule文件,在方法 OnBeforeResponse 中插入修改代码,重启Fiddler重新加载Rule,运行。


2、在脚本中进行编写:

static function OnBeforeResponse(oSession: Session) {

        if (m_Hide304s && oSession.responseCode == 304) {

            oSession["ui-hide"] = "true";

        }

        // 判断是否为目标请求

        var isMusicRequest = false;

        if ((oSession.host == "m.baidu.com") &&                // host

            oSession.fullUrl.Contains("suggest?ctl=his&action=list"))  // url

        {

            isMusicRequest = true;

        }

        // 修改返回JSON串

        if (isMusicRequest)

        {

            // 1, 获取Response Body中JSON字符串

            var responseStringOriginal =  oSession.GetResponseBodyAsString();

            //FiddlerObject.log(responseStringOriginal);    // 可在控制台中输出Log

            // 2, 转换为可编辑的JSONObject变量

            var responseJSON = Fiddler.WebFormats.JSON.JsonDecode(responseStringOriginal);

            // 3, 修改JSONObject变量

            // 3.1修改字段

            responseJSON.JSONObject['singer'] = "艾密莉亚·怀得堡";

            // 3.2添加字段

            var similarSong1= '{' +

                              '"music": "dying in the sun",'+

                              '"singer": "The Cranberries"'+

                              '}';

            var similarSong2= '{' +

                              '"music": "seasons in sun",'+

                              '"singer": "WestLife"'+

                              '}';

            var similarSong = '[' +

                              similarSong1 +

                              ',' +

                              similarSong2 +

                              ']';

            responseJSON.JSONObject['similar song'] = Fiddler.WebFormats.JSON.JsonDecode(similarSong).JSONObject ;

            // 4, 重新设置Response Body

            var responseStringDestinal = Fiddler.WebFormats.JSON.JsonEncode(responseJSON.JSONObject);

            //FiddlerObject.log(responseStringDestinal);

            oSession.utilSetResponseBody(responseStringDestinal);

        }

    }

3、重启fiddler

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容