【发布时间】:2016-02-10 08:02:15
【问题描述】:
我们的网络服务需要整个主体的 MD5 哈希值。 我认为这可以通过预请求脚本来完成。有人知道我如何在预请求脚本中访问请求正文吗?
我发现这个用于创建 md5:How to compute a md5 hash in a pre-request script in PostMan?
...但它没有显示如何访问正文。
【问题讨论】:
我们的网络服务需要整个主体的 MD5 哈希值。 我认为这可以通过预请求脚本来完成。有人知道我如何在预请求脚本中访问请求正文吗?
我发现这个用于创建 md5:How to compute a md5 hash in a pre-request script in PostMan?
...但它没有显示如何访问正文。
【问题讨论】:
我找到我的解决方案:
我访问请求数据并对其进行字符串化,然后将所有内容推送到一个数组中并与加入我的字符串一起生成。 在这之后只需要一些 MD5 方法,瞧,一切正常。
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() 直接在预请求脚本中访问请求正文。计算哈希很简单:
// 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));
【讨论】: