如何使用 NTLM 身份验证在节点 js 中调用 SOAP webservice
How can invoke SOAP webservice in node js with NTLM authentication
我是 NodeJS 的新手,我需要一些帮助才能连接到使用 NTLM 身份验证的 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
,所以调用时是undefined
。
这是 GitHub 上的相关错误:
https://github.com/SamDecrock/node-http-ntlm/issues/48
下面是这个问题的解决方法:
https://github.com/SamDecrock/node-http-ntlm/pull/51
我是 NodeJS 的新手,我需要一些帮助才能连接到使用 NTLM 身份验证的 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
,所以调用时是undefined
。
这是 GitHub 上的相关错误: https://github.com/SamDecrock/node-http-ntlm/issues/48
下面是这个问题的解决方法: https://github.com/SamDecrock/node-http-ntlm/pull/51