通过Postman调用Azure REST API执行查询后无法获取文档
Cosmos DB查询在Postman无结果但Azure平台正常的问题
问题说明
同一Cosmos DB查询在Azure平台可成功返回符合条件的文档列表,但在Postman中执行后无法检索到任何文档。
相关资料
Postman查询截图

请求头信息

预请求脚本(Token生成代码)
var mastKey = postman.getEnvironmentVariable("CosmosDBMasterKey"); console.log("mastKey = " + mastKey); var today = new Date(); var UTCstring = today.toUTCString(); postman.setEnvironmentVariable("RFC1123time", UTCstring); var url = request.url.trim(); var strippedurl = url.replace(new RegExp('^https?://[^/]+/'),'/'); var strippedparts = strippedurl.split("/"); var truestrippedcount = (strippedparts.length - 1); var resourceId = ""; var resType = ""; if (truestrippedcount % 2) { resType = strippedparts[truestrippedcount]; if (truestrippedcount > 1) { var lastPart = strippedurl.lastIndexOf("/"); resourceId = strippedurl.substring(1,lastPart); console.log(resourceId); } } else { resType = strippedparts[truestrippedcount - 1]; strippedurl = strippedurl.substring(1); resourceId = strippedurl; } var verb = request.method.toLowerCase(); var date = UTCstring.toLowerCase(); var key = CryptoJS.enc.Base64.parse(mastKey); console.log("key = " + key); var text = (verb || "").toLowerCase() + "\n" + (resType || "").toLowerCase() + "\n" + (resourceId || "") + "\n" + (date || "").toLowerCase() + "\n" + "" + "\n"; console.log("text = " + text); // create the signature from build up request text var signature = CryptoJS.HmacSHA256(text, key); console.log("sig = " + signature); // back to base 64 bits var base64Bits = CryptoJS.enc.Base64.stringify(signature); console.log("base64bits = " + base64Bits); // format our authentication token and URI encode it. var MasterToken = "master"; var TokenVersion = "1.0"; auth = encodeURIComponent("type=" + MasterToken + "&ver=" + TokenVersion + "&sig=" + base64Bits); console.log("auth = " + auth); // set our auth token enviornmental variable. postman.setEnvironmentVariable("authToken", auth);
预期结果
执行查询后获取符合条件的文档(对象)列表。
内容的提问来源于stack exchange,提问作者user23470697
相关产品推荐
相关产品推荐

