Node.js 如何执行SOAP请求

Node.js 如何执行SOAP请求

SOAP (Simple Object Access Protocol)是一种用于在Web服务中交换结构化信息的消息协议。SOAP基于XML,并且它定义了消息的标准格式,允许不同的应用程序在网络上相互通信。

Node.js 中,你可以使用node-soap库来创建SOAP客户端和服务器。node-soap提供了一个简单的API用于消费和公开SOAP Web服务。你可以使用node-soap向外部Web服务发起SOAP请求,或者创建自己的SOAP API供其他应用程序消费。

执行SOAP请求的步骤:

1. 使用NPM安装node-soap库。打开命令提示符并运行以下命令:

npm install soap

2. 在您的项目目录中创建一个新的Node.js文件,并导入soap库:

const soap = require('soap');

3. 定义要消费的SOAP服务的WSDL文件的URL。该URL应由SOAP服务提供商提供。例如:

const url = 'http://www.dneonline.com/calculator.asmx?wsdl';

4. 使用soap.createClient方法从WSDL文件创建一个新的SOAP客户端对象。

soap.createClient(url, function(err, client) {
    if (err) {
        console.error(err);
    } else {
        // SOAP client object is created successfully
    }
});

该方法接受两个参数:WSDL文件的URL和回调函数。回调函数在客户端对象创建后执行,或者在创建客户端对象时出错时执行。

5. 使用客户端对象发出SOAP请求。客户端对象有与WSDL文件中的每个SOAP方法对应的方法。例如,要调用计算器SOAP服务的Add方法,使用以下代码:

const args = { intA: 2, intB: 3 };
client.Add(args, function(err, result) {
    if (err) {
        console.error(err);
    } else {
        // SOAP request is successful, and r
        // esult contains the response data
    }
});

这段代码发送一个SOAP请求到计算器SOAP服务的Add方法,并传入两个整数参数,回调函数接收响应数据。

6. 最后,使用以下命令运行Node.js文件:

node <filename>.js

这将执行Node.js代码并将SOAP请求的结果输出到控制台。

示例1: 在这段代码中,我们使用了dneonline.com提供的SOAP服务的URL。我们调用了这个SOAP服务的Add方法,传入了两个整数参数,并将结果记录到控制台中。

const soap = require("soap"); 
  
const url = "http://www...com/calculator.asmx?wsdl"; 
  
soap.createClient(url, function (err, client) { 
    if (err) { 
        console.error(err); 
    } else { 
        // Make SOAP request using client object 
        const args = { intA: 2, intB: 3 }; 
        client.Add(args, function (err, result) { 
            if (err) { 
                console.error(err); 
            } else { 
                console.log(result); 
            } 
        }); 
    } 
});

输出:

Node.js 如何执行SOAP请求

示例2: 在下面的示例中,我们使用soap服务通过使用GetDatabasesResult方法列出数据库。

const soap = require("soap"); 
  
const url = "http://www...com/MassSpecAPI.asmx?WSDL"; 
  
soap.createClientAsync(url,  
    { overridePromiseSuffix: "Promise" }) 
    .then((client) => { 
        client.GetDatabasesPromise({}) 
        .then((results) => { 
            const data = results[0] 
                .GetDatabasesResult.string; 
  
            console.log(data); 
        }); 
    });

输出:

Node.js 如何执行SOAP请求

总之,Node.js提供了几种选项来进行SOAP请求,包括内置的http和https模块,以及第三方包,如soap、strong-soap和node-soap。这些包提供了一种简单的方法来创建一个SOAP客户端,生成SOAP请求,并解析SOAP响应。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程