You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Node.js调用SOAP Web服务?求实用实现方法

使用strong-soap发送SOAP请求

基础步骤与示例

  • 安装依赖:npm install strong-soap
  • 核心流程:加载WSDL、创建客户端、调用服务方法

示例代码:

const soap = require('strong-soap').soap;

// WSDL地址(本地路径或远程URL均可)
const wsdlUrl = 'http://example.com/your-service.wsdl';

// 创建SOAP客户端
soap.createClient(wsdlUrl, (err, client) => {
  if (err) {
    console.error('创建客户端失败:', err);
    return;
  }

  // 请求参数需严格匹配WSDL定义的结构
  const requestParams = {
    param1: 'value1',
    param2: 123
  };

  // 调用WSDL中定义的服务方法
  client.YourServiceMethod(requestParams, (err, result) => {
    if (err) {
      console.error('调用方法失败:', err);
      return;
    }
    console.log('响应结果:', result);
  });

  // 查看服务结构,确认方法名与参数格式
  console.log(client.describe());
});

常用扩展:设置SOAP头

如果服务需要认证,可添加SOAP头:

const soapHeader = {
  AuthHeader: {
    Username: 'your-username',
    Password: 'your-password'
  }
};
client.addSoapHeader(soapHeader);

使用soap库发送SOAP请求

基础步骤与示例

  • 安装依赖:npm install soap
  • 核心流程与strong-soap一致,API细节略有差异

示例代码:

const soap = require('soap');

const wsdlUrl = 'http://example.com/your-service.wsdl';

soap.createClient(wsdlUrl, (err, client) => {
  if (err) {
    console.error('客户端创建失败:', err);
    return;
  }

  // 按WSDL定义构造请求参数
  const requestParams = {
    param1: 'test-value',
    param2: {
      subParam: 'sub-value'
    }
  };

  // 调用方法需带上完整命名空间(WSDL有定义时)
  client['YourNamespace.YourServiceMethod'](requestParams, (err, result) => {
    if (err) {
      console.error('请求失败:', err);
      return;
    }
    console.log('响应:', result);
  });

  // 输出服务结构,辅助确认调用方式
  console.log(client.describe());
});

常用扩展:带命名空间的SOAP头

const authHeader = {
  'ns1:AuthHeader': {
    'ns1:Username': 'user',
    'ns1:Password': 'pass'
  },
  'xmlns:ns1': 'http://your-auth-namespace.com'
};
client.addSoapHeader(authHeader);

内容的提问来源于stack exchange,提问作者Néstor Recinos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 02:20:18