日常问题记录--使用fiddler自动响应jsonp结构的响应
2017-10-19 20:41
363 查看
#问题表现#
在使用fiddler做对请求做mock时,有时需要对jsonp格式响应进行映射;
jsonp响应的特点为callback为一个随机字符串;
使用普通的fiddler 做mock无法进行正常mock;
#解决办法#
保留响应中的callback函数名;
替换响应内容;
#实现#
fiddler修改脚本,增加读取本地文件内容的函数;
修改OnBeforeResponse,替换响应内容;
下面代码快中OnBeforeResponse被注释的部分根据url中关键词进行替换;
注意本地文件的编码需要与请求的编码一致;
#其他#
fiddler使用微软的JScript,而JScript是可以对windows本地文件做读写,注意包括写操作;
后续想编写一个自己的fiddler插件,实现jsonp的mock,自动生成jmeter用例,上传指定url到扫描平台等功能,方便日常使用;
在使用fiddler做对请求做mock时,有时需要对jsonp格式响应进行映射;
jsonp响应的特点为callback为一个随机字符串;
使用普通的fiddler 做mock无法进行正常mock;
#解决办法#
保留响应中的callback函数名;
替换响应内容;
#实现#
fiddler修改脚本,增加读取本地文件内容的函数;
修改OnBeforeResponse,替换响应内容;
下面代码快中OnBeforeResponse被注释的部分根据url中关键词进行替换;
注意本地文件的编码需要与请求的编码一致;
static function readFile(filename) { var fso = new ActiveXObject( "Scripting.FileSystemObject"); var f = fso.OpenTextFile(filename, 1); var s = ""; while(!f.AtEndOfStream) s += f.ReadLine(); f.Close(); return s; } static function OnBeforeResponse(oSession: Session) { if (m_Hide304s && oSession.responseCode == 304) { oSession["ui-hide"] = "true"; } /* if(oSession.url.indexOf("RrjfGetJifenPointList") > 1){ oSession.utilDecodeResponse(); var body = oSession.GetResponseBodyAsString(); var string = readFile("C:\\Users\\zhangkai1\\Desktop\\aaabbb.txt"); var index = body.indexOf('('); var b = body.slice(0, index); body = b + '('+ string + ')'; oSession.utilSetResponseBody(body); } if(oSession.url.indexOf("RrjfGetAssistUserList") > 1){ oSession.utilDecodeResponse(); var body = oSession.GetResponseBodyAsString(); var string = readFile("C:\\Users\\zhangkai1\\Desktop\\aaabbb.txt"); var index = body.indexOf('('); var b = body.slice(0, index); body = b + '('+ string + ')'; oSession.utilSetResponseBody(body); } */ if(oSession.url.indexOf("CommonAppointSubmit") > 1){ oSession.utilDecodeResponse(); var body = oSession.GetResponseBodyAsString(); var string = readFile("C:\\Users\\zhangkai1\\Desktop\\aaabbb.txt"); var index = body.indexOf('('); var b = body.slice(0, index); body = b + '('+ string + ');}catch(e){}'; oSession.utilSetResponseBody(body); } }
#其他#
fiddler使用微软的JScript,而JScript是可以对windows本地文件做读写,注意包括写操作;
后续想编写一个自己的fiddler插件,实现jsonp的mock,自动生成jmeter用例,上传指定url到扫描平台等功能,方便日常使用;
相关文章推荐
- Unity学习日常问题记录三 -- Slider的使用
- Delphi结构中使用String时遇到的内存泄露问题(没有利用String的引用计数自动销毁字符串的功能)
- 【日常记录】Unity3D 中的 Surface Shader 是不支持在 Pass中使用的,因为自动生成了 Pass
- 【疑难】Android 在 WindowManager 中使用 ListView 点击不响应问题记录
- 日常问题记录--jquery中HTML元素本身固有属性用prop,自定义的DOM属性,在处理时,使用attr方法
- Debian 7.4 64 位日常使用中的问题记录
- [导入]C#分析数据库结构,使用XSL模板自动生成代码
- 如何解决eWebEditor在线编辑器的远程自动上传功能不能使用的问题?
- 根据数据库表中记录自动构造一棵结构树的一种高效算法
- C#分析数据库结构,使用XSL模板自动生成代码
- C#分析数据库结构,使用XSL模板自动生成代码(二)
- 关于使用WindowsUpdate 或 Windows 自动升级时碰到的 svchost.exe 进程 CPU 资源占用过高的问题的相关信息
- Ubuntu使用问题记录,
- C#分析数据库结构,使用XSL模板自动生成代码
- 使用hibernate连接mysql自动中断的问题
- 使用__attribute__处理结构对齐问题
- C#分析数据库结构,使用XSL模板自动生成代码
- Ant 使用Junit自动测试要注意的问题
- 编程常见问题记录:明明有响应按钮的事件,但程序就是无法捕获到
- [导入]C#分析数据库结构,使用XSL模板自动生成代码