当请求接口中存在一段json内容需要进行base64加密时,又要计算sign时如何实现?
以下为本人的实现方法:
先对内容进行base64加密
base64Content={
"round_id": "123",
"game_id": 7988,
"result": [
{
"user_id": "11",
"score": 1
},
{
"user_id": "22",
"score": -1
}
]
}; // 加密内容
var wordArray = CryptoJS.enc.Utf8.parse(JSON.stringify(base64Content));
var base64 = CryptoJS.enc.Base64.stringify(wordArray);
console.log('base64Encrypt = ', base64); //加密
pm.globals.set("content", base64); //置为全局变量
然后在计算sign脚本中添加如下代码:
for (var p = 0; p < keys.length; p++) {
if (keys[p] == "sign" || values[p] === "") {
continue;
}
var temp;
if(values[p].indexOf("{{") != -1 && values[p].indexOf("}}") != -1) {
temp = values[p].replace("{{", "");
temp = temp.replace("}}", "");
// console.log(temp);
if(temp == "content") {
values[p] = base64; //获取内容
console.log(values[p])
}
console.log("content=",values[p]);
}
str.push(keys[p] + "=" + values[p]);
}
加密逻辑同上篇文章,也是先将内容加密成环境变量,然后在计算sign的时候进行获取
各路大神如有更简便的方法,欢迎指正!!1