postman里的预执行脚本不能直接放到APipost上,我是个新手 所以来问问
apipost 7 版本已完全兼容postman的脚本了
但是我吧postman上的预执行脚本复制到apipost上面不好用
辛苦发一下脚本我们给看一下
const appId = '*****';
const secret = '***'
const timestamp = Date.now();
const nonce = Math.floor(Math.random() * 10000000000);
// 生成预签名字符串
// preSignStr=timestamp + appId + nonce + path + pk1 + pv1 + pk2 + pv2 + secret
const url = pm.request.url;
const path = pm.variables.replaceIn(url.getPath());
let preSignStr = timestamp + appId + nonce + path;
const queryStr = pm.variables.replaceIn(url.getQueryString());
if (queryStr) {
const parts = queryStr.split('&');
parts.map(item => {
const i = item.indexOf('=');
if (i > -1) {
return item.substring(0, i) + decodeURIComponent(item.substring(i + 1));
} else {
return item;
}
}).sort().forEach(item => {
preSignStr += item;
});
}
preSignStr += secret;
console.log("preSignStr=" + preSignStr);
// 生成签名
const signature = CryptoJS.MD5(preSignStr).toString(CryptoJS.enc.Hex).toUpperCase();
console.log("signature=" + signature);
// 设置请求头
pm.request.addHeader({key: 'x-wf-appid', value: appId});
pm.request.addHeader({key: 'x-wf-timestamp', value: timestamp});
pm.request.addHeader({key: 'x-wf-nonce', value: nonce});
pm.request.addHeader({key: 'x-wf-signature', value: signature});
麻烦了 谢谢
收到。我们目前url判定为一串字符串,所以无法直接获取url.getPath()及url.getQueryString()
后续会优化这方面情况。非常感谢您的建议