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);
}
});
}
});
输出:

示例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请求,包括内置的http和https模块,以及第三方包,如soap、strong-soap和node-soap。这些包提供了一种简单的方法来创建一个SOAP客户端,生成SOAP请求,并解析SOAP响应。
极客教程