在 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));
我们的网络服务需要整个正文的 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));