2017-08-06 96 views
6

Używam modułu węzła mocnego mydła Chcę wykonać wywołanie do usługi sieci Web, mam plik wsdl.Jak korzystać z usługi WWW wsdl za pośrednictwem węzła js

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 ?? 
}); 
+0

Jakaś odpowiedź na temat mojej odpowiedzi? – ffeast

Odpowiedz

3

Pozwala używać następujących sample SOAP service:

nazwę domeny Get rekord rejestracji przez Host Name Name/Domain (whois)

sądząc kodzie chcesz użyć Plik dostępny lokalnie, więc zapisujemy:

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

Teraz pozwala użyć następującego kodu, aby go zapytać:

'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)); 
    }); 
}); 

To będzie produkować jakieś znaczące wyniki. WSDL.open próbujesz użyć jest meant for pracy ze strukturą WSDL

Obciążenia WSDL w formie drzewa. Przechodzenie przez drzewo WSDL, aby uzyskać powiązania, usługi, porty, operacje i tym podobne do .

Nie koniecznie trzeba ją wywołać usługę

6

nie jestem pewien o tym, jak strong-soap prac. Ale mam pewne implementacje SOAP użyciu node-soap

Zasadniczo, z pakietu node-soap wykorzystuje Promises zachować concurrencies życzenie.

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); 
     }); 
    });