使用 nodejs 的 SOAP 请求

mah*_*ath 4 soap wsdl node.js

嗨,任何人都可以帮助我。

如何请求soap web 服务并获得xml 响应。Senario:使用soap ui即时发送带有用户名、密码身份验证的wsdl url,并且我将发送soap xml数据并得到响应。如何使用nodejs或sails实现同样的事情。

在 SoapUi 我的soap xml请求就像

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tier="http://HCSLN9191-GMS.gois.ito.unisys.com/Tier1ICLStd:Tier1ICLMB_StdDispatch">
   <soapenv:Header/>
   <soapenv:Body>
      <tier:UnisysMB_Dispatch>
         <PayLoad>SomeData</PayLoad>
      </tier:UnisysMB_Dispatch>
   </soapenv:Body>
</soapenv:Envelope>
Run Code Online (Sandbox Code Playgroud)

我的 Soap 身份验证就像

$用户名:xyz & 密码:xyz

我的 wsdl 网址是 http://esbuatt1wm.ito.xyz.com:7001/ws/Tier1ICLStd_New:Tier1ICLMB_StdDispatch_New?WSDL

提供此信息后,我收到 xml 响应,例如

<ser-root:CommAck xmlns:ser-root="http://HCSLN1181-GMS.gois.ito.unisys.com/Tier1ICLStd_New:Tier1ICLMB_StdDispatch_New" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<CommAck>
<MB_UUID>cbbb683d-e9b1-4d12-b0db-8006134aad27</MB_UUID>
<ServiceID>McDonalds</ServiceID>
<Acknowledge>0</Acknowledge>
<Comment>Payload does not contain the pattermatch xpath.</Comment>
</CommAck>
</ser-root:CommAck>
Run Code Online (Sandbox Code Playgroud)

我的问题是如何使用 node easy soap 获得上面的 xml 响应,我是肥皂概念的新手。任何人都可以帮我给我上面senario的正确片段.....

man*_*shg 5

你可以使用这个包https://www.npmjs.com/package/soap。示例在同一链接中。我在下面粘贴了一些内容:

使用 npm 安装:

  npm install soap
Run Code Online (Sandbox Code Playgroud)

例子:

var soap = require('soap');
  var url = 'http://example.com/wsdl?wsdl';
  var args = {name: 'value'};
  soap.createClient(url, function(err, client) {
      client.MyFunction(args, function(err, result) {
          console.log(result);
      });
  });
Run Code Online (Sandbox Code Playgroud)

基本身份验证安全

  client.setSecurity(new soap.BasicAuthSecurity('username', 'password'));
Run Code Online (Sandbox Code Playgroud)

  • 嗨 manishg 我是肥皂概念的新手,我们需要在你的前任那里 paas 的参数是什么? (2认同)
  • `MyFunction` 是在 wsdl 上定义的吗?另外,这个取自soap自述文件的示例并没有真正回答问题,因为它没有使用问题提供的任何XML。 (2认同)