接口调用时会加签,在使用Postman debug的过程中,即使修改了一个参数,签名也会发生变化,而手动加签是一件重复枯燥的事情,所以自动加签是必要的。
自动加签主要依赖 Postman 对 Pre-request Script 的支持,可以在实际发送强求前做一些定制操作,自动加签就是一个典型的应用。
下面是我使用的 Script,可以作为参考。
// 我会把 appKey 和 secretKey 存放在环境变量里,因为不同环境下这两个值是不一样的。
let appkey = pm.environment.get("appKey");
let salt = pm.environment.get("secretKey");
let params = request.data; // post 参数
let getParams = pm.request.url.query.members; // get 参数
// 将post和get合并
for (let i in getParams) {
params[getParams[i].key] = getParams[i].value;
}
// 移除appkey、ts、sign参数
delete params.appkey
delete params.sign
delete params.ts
// 设置 appkey
params['appkey'] = appkey;
// 生成时间戳参数
let ts = (new Date()).getTime().toString();
// 设置时间戳
params['ts'] = ts;
// pm.environment.set("ts", params.time);
// 排序
params = objSort(params);
let paramStr = makeParamStr(params);
// 生成签名
// let sha1Str = CryptoJS.SHA1(paramStr + salt).toString();
let md5Str = CryptoJS.MD5(paramStr + salt);
postman.setEnvironmentVariable("ts", ts);
postman.setEnvironmentVariable("sign", md5Str);
// 排序方法
function objSort(obj) {
let keys = Object.keys(obj).sort();
let arr = {};
for (let i in keys) {
arr[keys[i]] = obj[keys[i]];
}
return arr;
}
function makeParamStr(params) {
let paramStr = "";
let keys = Object.keys(params);
for (let i in keys) {
// 按自己加签算法拼接字符串
}
return paramStr;
}
本文介绍了在Postman中进行接口调用时自动加签的方法,强调了自动加签的必要性,特别是在debug过程中,避免手动加签的繁琐。通过利用Postman的Pre-request Script特性,可以在发送请求前进行定制化操作,实现签名的自动化生成。
1207

被折叠的 条评论
为什么被折叠?



