很多接口都有sign参数,规则是将地址栏的参数加密后生成,有时候前端的生成的sign跟服务端生成的不匹配,这个时候可以将前端的sign代码要过来,在postman执行js生成sign参数后去后台打断点对比。
编写js
位置:位置位于body右边的,Pre-request Script
注意,脚本生成了pwd变量并设置为全局变量,以便接口调用
如果将Pre-request Script写在接口文件夹根目录上,就可以实现全局调用
function xorEncode(_key,_str) {
var keyUnicodeSum=_key;
var codedStr = "";
for( i = 0; i<_str.length; i++ ) {
//分别对每一个等加密字符串进行“位异或”运算
var _strXOR = _str.charCodeAt(i) ^ keyUnicodeSum;
//fromCharCode() 可接受一个指定的 Unicode 值,然后返回一个字符串。
codedStr += String.fromCharCode( _strXOR );
}
return codedStr;
}
var xorKey = "4523";
var sign = xorEncode(xorKey,"111111");
console.log(sign);
postman.setGlobalVariable("sign", sign)//传递给postman
//pm.globals.set("sign", sign);//另一种写法
使用
Postman唤醒console工具栏的快捷键是Alt+Ctrl+C
sign不一致,有一种可能是nginx伪静态后入参多了一个s参数,而前端没有
访问:http://127.0.0.1/api/login?sign={{sign}}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/133968.html