如何使用NTLM身份validation在节点js中调用SOAP webservice

我是NodeJS的新手,我需要一些帮助来连接到NTLM身份validation的SOAP Web服务。

执行此代码时,httpntlm模块中会显示一个错误:

C:\soapclient\node_modules\httpntlm\ntlm.js:106 callback(new Error("Couldn't find NTLM in the message type2 comming from the server")); ^ TypeError: callback is not a function at Object.parseType2Message (C:\soapclient\node_modules\httpntlm\ntlm.js:106:3) at sendType3Message (C:\soapclient\node_modules\httpntlm\httpntlm.js:66:23) at Immediate._onImmediate (C:\soapclient\node_modules\httpntlm\httpntlm.js:93:4) at processImmediate [as _immediateCallback] (timers.js:383:17) 

和代码:

 var soap = require('soap-ntlm-2'); var url ='https://ws.tmb.cat/secure/ws-ibus/IBusService?WSDL' var options = { wsdl_options: { ntlm: true, username: "xxxxxx", password: "xxxxxx" } }; soap.createClient(url, options, function (err, client, body) { if (err) { console.log("4") console.log(err); } client.setSecurity(new soap.NtlmSecurity(options.wsdl_options)); console.log(client.describe()); report = client.getAllArrivaltimes({}, function(err, res){ console.log('err='+err); console.log('res='+res); }); }); 

这是http-ntlm模块中的一个错误。
它不会传递callback ,因此在callback时它是undefined

以下是GitHub上的相关错误: https : //github.com/SamDecrock/node-http-ntlm/issues/48

这里是解决这个问题的方法: https : //github.com/SamDecrock/node-http-ntlm/pull/51