dynamic导航ODatavalidation
我正在尝试编写一个使用Dynamics NAV Odata提要的node.js脚本。
我的Dynamics NAV设置中同时拥有UserAccount / PW和Web服务访问密钥。
我不能在我的生活中发现如何正确地进行身份validation,可以通过在标题中添加内容或在URL查询中添加内容。 我试过使用“用户名:密码@服务器”格式。 我已经尝试编码,作为base64,并添加到“身份validation”值的标题。
文档本身是非常不具体的。 我知道如何生成密钥,但我不知道如何正确地将密钥发送到NAV进行身份validation。
我正在使用'request-promise'npm包,它接受一个'options'参数,我可以添加任意的header key:value对。 请有人给我一些关于如何validation资产净值的方向。 我已经在这几个小时了。
我find了一个满意的答案。
使用node-libcurl我能够使用格式来链接到URL
http://username:password@<server>/ODATA_table
特别是我的cURL模块看起来像这样:
var Curl = require('node-libcurl').Curl; var curl = new Curl(), close = curl.close.bind(curl); function getOData(url) { return new Promise((resolve, reject) => { curl.setOpt(Curl.option.URL, url); curl.setOpt(Curl.option.HTTPAUTH, Curl.auth.NTLM); curl.setOpt(Curl.option.SSL_VERIFYPEER, false); curl.setOpt(Curl.option.SSL_VERIFYHOST, false); curl.setOpt(Curl.option.POST, 0); curl.on('end', function (statusCode, body, headers) { var retObj = JSON.parse(body); resolve(retObj); }); curl.on( 'error', function(e){ reject(e); this.close(); }); curl.perform(); }) } module.exports = {getOData: getOData};
但是我必须在url中明确要求json,比如?format=json
。