I am trying to use node-soap https://github.com/vpulim/node-soap to call a web service but I am having trouble using the module with https.
In the code below I am using http and I can see the functions and log a describe()
of the About
function. (Responses are empty, probably because the WS is setup like that when using http(?))
var soap = require('soap');
var url = "http://XXXXX/service.svc?DocArchiveService/DocArchiveV201409";
var auth = "Basic " + new Buffer("USERXXX" + ":" + "PWYYY").toString("base64");
var args = {};
soap.createClient(url, { wsdl_headers: {Authorization: auth} }, function(err, client) {
console.log(client.describe().DocArchiveV201409.DocArchiveV201409Soap.About);
client.DocArchiveV201409.DocArchiveV201409Soap.About(args, function(err, result){
if (err) throw err;
console.log(result);
});
});
Output:
{ input: {}, output: { AboutResult: 's:string' } }
Error message (this is fine since the response will be empty anyway):
Error: Cannot parse response at finish (E:\Qlikview\SourceDocuments\UnderDevelopment\Node\node_modules\so ap\lib\client.js:383:19)
My problem is that when using https I get an undefined client.
E:\Qlikview\SourceDocuments\UnderDevelopment\Node\Soap.js:23 console.log(client); ^ ReferenceError: client is not defined at Object.anonymous (E:\Qlikview\SourceDocuments\UnderDevelopment\Node\Soa p.js:23:13)
Have anyone used node-soap with https?
edit:
As the result below suggests I need to have the certificate first. I have tried using SoapUI without the cert and that works fine. Maybe there is some parameters to createClient
I can use in node-soap?
console.log(err) returns:
{ Error: unable to get local issuer certificate
at Error (native)
at TLSSocket.<anonymous> (_tls_wrap.js:1079:38)
at emitNone (events.js:86:13)
at TLSSocket.emit (events.js:185:7)
at TLSSocket._finishInit (_tls_wrap.js:603:8)
at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:433:38) code: 'UNABLE_TO_GET_IS
SUER_CERT_LOCALLY' }