Запрос клиента NodeJS SOAP с сертификатом - PullRequest
0 голосов
/ 10 мая 2018

Я пытаюсь подключиться к службе SOAP, для которой требуется сертификат в моем проекте NodeJS. Я использую мыло , и вот как я пытаюсь получить к нему доступ:

const soap = require('soap');
(...)

let sslOptions = {
    key: fs.readFileSync(keyPath),
    cert: fs.readFileSync(certPath)
};
let sslHeaders = {
    Authorization: {
        user: 'Z100079',
        pass: password
    }
};
Service.GetLossRatio = function (contractID, start, end, asOf, cb) {
    process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
    let args = {
        contractID: contractID,
        start: start,
        end: end,
        asOf: asOf
    };
    soap.createClientAsync(url,
        {
            //request : specialRequest,
            wsdl_options: sslOptions,
            wsdl_headers: sslHeaders
        })
        .then((client) => {
            client.setSecurity(
                new soap.ClientSSLSecurityPFX(
                    certCerPath
                )
        );
        client.LossratioService.LossratioPort.calculate(args, (err, res) => {
            if (err) {
                console.log(err);
                return cb(err);
            }
            console.log(res);
            return cb(null, res);
        });
    })
    .catch((e) => {
        console.log(e);
        cb(e);
    });
};

При получении LossratioPort.calculate () возникает ошибка «Неправильный тег». Я понятия не имею, что означает эта ошибка, я не могу найти много документации об этой конкретной ситуации, документация "мыла" показывает только краткое объяснение того, как сделать запрос с сертификатами, но не намного

Я знаю, что сертификаты действительны, и я попробовал все сгенерированные сертификаты из файла .pem (.p12 и .cer). Я просто хочу быть уверен, что что-то получаю от службы. Либо то, что я действительно хочу, либо ошибка с сервера , а не с API.

Любая помощь?

Заранее спасибо.

UPDATE:

Я могу получить описание услуги через client.describe (), хотя:

{ "LossratioService": { "LossratioPort": { "вычислить": { "вход": "ТНС: вычислить", "выход": "TNS: calculateResponse"}, "пинг": { "вход":» ТНС: пинг», "выход": "TNS: pingResponse"}, "shakedownTest": { "вход": "ТНС: shakedownTest", "выход": "TNS: shakedownTestResponse"}}}} * +1022 *

Я также подтвердил ввод данных и отправляю по мере необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...