Как использовать wsdl webservice через узел js

Я использую модуль узла сильного мыла, я хочу сделать звонок в веб-сервис, у меня есть файл wsdl.

var soap = require('strong-soap').soap;
var WSDL = soap.WSDL;
var path = require('path');
var options = {};
WSDL.open('./wsdls/RateService_v22.wsdl',options,
  function(err, wsdl) {
    // You should be able to get to any information of this WSDL from this object. Traverse
    // the WSDL tree to get  bindings, operations, services, portTypes, messages,
    // parts, and XSD elements/Attributes.

    var service = wsdl.definitions.services['RateService'];
    //console.log(service.Definitions.call());
    //how to Call rateService ??
});

2 ответа

Я не уверен в том, как strong-soap работает. Но у меня есть несколько реализаций SOAP используя узел-мыло

В основном, с node-soap пакет использует Promises сохранить запрос совпадений.

var soap = require('soap');
  var url = 'http://www.webservicex.net/whois.asmx?WSDL';
  var args = {name: 'value'};
  soap.createClient(url, function(err, client) {
      client.GetWhoIS(args, function(err, result) {
          console.log(result);
      });
  });

Давайте использовать следующий пример сервиса SOAP:

Получить запись регистрации доменного имени по имени хоста / доменному имени (WhoIS)

Судя по вашему коду, вы хотите использовать файл .wsdl, доступный локально, поэтому сохраните его:

mkdir wsdl && curl 'http://www.webservicex.net/whois.asmx?WSDL' > wsdl/whois.wsdl

Теперь давайте используем следующий код для запроса:

'use strict';

var soap = require('strong-soap').soap;
var url = './wsdl/whois.wsdl';

var requestArgs = {
    HostName: 'webservicex.net'
};

var options = {};
soap.createClient(url, options, function(err, client) {
  var method = client['GetWhoIS'];
  method(requestArgs, function(err, result, envelope, soapHeader) {
    //response envelope
    console.log('Response Envelope: \n' + envelope);
    //'result' is the response body
    console.log('Result: \n' + JSON.stringify(result));
  });
});

Это дало бы некоторые значимые результаты.WSDL.open вы пытаетесь использовать, предназначен для работы со структурой WSDL

Загружает WSDL в виде дерева. Пройдите по дереву WSDL, чтобы получить привязки, сервисы, порты, операции и так далее.

Вам не обязательно это нужно, чтобы позвонить в службу

Другие вопросы по тегам