Я пытаюсь использовать node-soap https://github.com/vpulim/node-soap для вызова веб-службы, но у меня возникают проблемы с использованием модуля с https.Использование узла для вызова веб-службы SOAP по https
В коде ниже я использую HTTP и я могу видеть, функции и войти в describe()
функции About
. (Ответы пустуют, вероятно, потому, что WS настроен как, что при использовании 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);
});
});
Выход:
{ input: {}, output: { AboutResult: 's:string' } }
Сообщение об ошибке (это нормально, так как ответ будет пусто в любом случае) :
Error: Cannot parse response at finish (E:\Qlikview\SourceDocuments\UnderDevelopment\Node\node_modules\so ap\lib\client.js:383:19)
Моя проблема заключается в том, что при использовании протокола HTTPS я получаю неопределенную клиента.
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)
ли кто-нибудь использовал узел-мыло с HTTPS?
Редактировать: В результате ниже мы предлагаем сначала получить сертификат. Я попытался использовать SoapUI без сертификата, и это работает нормально. Может быть, есть некоторые параметры для createClient
Я могу использовать в узловом мыле?
console.log (ERR) возвращает:
{ 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' }
Попробуйте напечатать 'err' в случае' https'. 'console.log (err)' –
@MukeshSharma Возвращает: {Ошибка: не удалось получить сертификат локального эмитента при ошибке (native) в TLSSocket. (_tls_wrap.js: 1079: 38) в emitNone (events.js: 86: 13) на TLSSocket.emit (events.js: 185: 7) на TLSSocket._finishInit (_tls_wrap.js: 603: 8) на TLSWrap.ssl.onhandshakedone (_tls_wrap.js: 433: 38) код: 'UNABLE_TO_GET_IS SUER_CERT_LOCALLY'} –
mickeger