接口返回的响应数据有时是经过编码或加密处理的,要转换成可读的明文,可以使用 Apifox 内置的 JS 类库、或者通过调用外部编程语言 (如 Python、JavaScript 等) 来进行处理。
例如,一个经过 Base64 编码的数据可以通过内置类库进行解码,转换成可读的明文:
下面就来分享一些常见的解码、解密例子。
解码响应数据
1、Base64 解码
当接口返回的数据经过 Base64 编码时,可以通过 CryptoJS 库进行解码,Apifox 中内置了该类库,因此可以直接在脚本中引入并使用。
比如接口返回的 Base64 编码数据为:
{ "data": "5L2g5aW977yMQXBpZm94IQ=="}
使用 CryptoJS 库来解码这个 Base64 编码的字符串,其示例脚本如下:
// 引入 CryptoJS 库
const CryptoJS = require("crypto-js");
// Base64 编码的字符串(一般从响应数据中提取)
let encodedData = {
"data": "5L2g5aW977yMQXBpZm94IQ=="
}
// 解码 Base64 编码的数据
let decodedData = CryptoJS.enc.Base64.parse(encodedData.data).toString(CryptoJS.enc.Utf8);
// 输出解码后的结果
console.log(decodedData); // "你好,Apifox!"
在 Apifox 中,你可以在「后置操作」中添加一个自定义脚本,将上述解码逻辑编写其中。当接口发送请求后,可在响应面板的「控制台」中查看解码后的数据。
此外,解码后的数据也可以存储到环境变量中,以供后续使用。例如:
pm.environment.set("decodedData",decodedData);
如果接口返回的 JSON 数据是以 Base64 编码形式出现的,可以同样使用 CryptoJS 库进行解码,并通过 pm.response.setBody() 方法将解码后的 JSON 数据设置为响应 Body。
比如下面返回的是一个经过 Base64 编码后的 JSON 响应: