使用场景:
api/Live/GetLiveList接口:
(1)Type为1,接口返回直播列表
(2)Type为2,接口返回回放列表
现在想修改直播列表的返回值
思路:
利用FiddlerScript获取请求参数,请求中有指定参数时修改返回值。
实现:
FiddlerScript的OnBeforeResponse中增加处理代码:
if (oSession.fullUrl.Contains("http://xxx.xxxxxx.com/api/Live/GetLiveList"))
{ // 获取Response Body、Request Body中JSON字符串,转换为可编辑的JSONObject变量
var responseStringOriginal = oSession.GetResponseBodyAsString();
var responseJSON = Fiddler.WebFormats.JSON.JsonDecode(responseStringOriginal); var requestStringOriginal=oSession.GetRequestBodyAsString();
var requestJSON = Fiddler.WebFormats.JSON.JsonDecode(requestStringOriginal); if(requestJSON.JSONObject['type']==){ //请求参数中,若type为1,对返回值做如下修改 // 修改字段
responseJSON.JSONObject['Message'] = "获取成功修改后后";
responseJSON.JSONObject['Info']['LiveInfoList'][]['LiveName']="直播测试5修改返回值后"; // 添加字段
var teacherinfo= '[{"name":"Wang", "title":"senior"},'+
'{"name":"Li", "title":"senior"}]';
responseJSON.JSONObject['teacherinfo'] = Fiddler.WebFormats.JSON.JsonDecode(teacherinfo).JSONObject ; // 重新设置Response Body
var responseStringDestinal = Fiddler.WebFormats.JSON.JsonEncode(responseJSON.JSONObject);
oSession.utilSetResponseBody(responseStringDestinal);
}
}
}
效果:
Type=1,修改前的返回值
Type=1,修改后的返回值
Type=2,返回值保持不变
参考资料: