【问题标题】:How to consume wsdl webservice through node js如何通过node js消费wsdl webservice
【发布时间】:2017-08-06 18:44:25
【问题描述】:

我正在使用强肥皂节点模块,我想调用 web 服务,我有 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 ??
});

【问题讨论】:

  • 对我的回答有任何反馈吗?

标签: node.js web-services soap wsdl strong-soap


【解决方案1】:

我不确定strong-soap 的工作原理。 但是,我有一些使用node-soapSOAP 实现

基本上,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);
      });
  });

【讨论】:

  • 我正在使用相同但我得到以下错误消息“TypeError:无法读取未定义的属性'GetWhoIS'”
【解决方案2】:

让我们使用以下sample SOAP service

通过主机名/域名(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 您尝试使用的是 meant for 使用 WSDL 结构

将 WSDL 加载到树形中。遍历 WSDL 树以到达 绑定、服务、端口、操作等。

你不一定需要它来调用服务

【讨论】:

    猜你喜欢
    • 2014-11-13
    • 1970-01-01
    • 2016-12-07
    • 2018-07-09
    • 1970-01-01
    • 2015-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多