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

Interesting Posts