在 Postman 中计算请求体的哈希值

Calculate hash of request body in Postman

我们的网络服务需要整个正文的 MD5 散列。 我认为这可以通过预请求脚本来完成。有人知道我如何在预请求脚本中访问请求正文吗?

我发现这个用于创建 md5:

...但它没有显示如何访问正文。

找到我的解决方案:

我访问请求数据并将其字符串化,之后将所有内容推送到一个数组中并生成并加入我的字符串。 在这之后只需要一些 MD5 方法和 voilà,一切正常。

var rdata = request.data;
var requestLength = JSON.stringify(JSON.parse(rdata)).length;

var presharedkey = "XXXXKEYXXXXX";
var DeviceID = "3111110000666000";
var d = new Date();
var timestamp = d.getTime();

var AdditionalInfoString = [];
AdditionalInfoString.push(requestLength,DeviceID,presharedkey,timestamp);
AdditionalInfoString = AdditionalInfoString.join("");

var hash = CryptoJS.MD5(AdditionalInfoString);

postman.setGlobalVariable("AdditionalInfo", hash.toString());

您可以使用 pm.request.body.toString() 在 pre-request 脚本中直接访问请求正文。计算哈希值非常简单:

// MD5 hash as hex string
postman.setEnvironmentVariable('contentMd5', 
    CryptoJS.MD5(pm.request.body.toString()).toString());

如果您需要 base64 编码的哈希值,那么它是

// Base64-encoded MD5 hash
postman.setEnvironmentVariable('contentMd5', 
    CryptoJS.MD5(pm.request.body.toString()).toString(CryptoJS.enc.Base64));