SOAP请求使用nodejs

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

如何请求soap web服务并获取xml响应。 Senario:使用肥皂用户名,密码validation发送wsdlurl,我也将发送肥皂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> 

和我的肥皂authentication是一样的

$用户名:xyz和密码:xyz

我的wsdlurl是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> 

我的问题是如何使用节点易皂上面的xml响应,我是新的肥皂概念。 可以anyboud帮助我给上述senario适当的片段…..

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

用npm安装:

  npm install soap 

例:

 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); }); }); 

BasicAuthSecurity

  client.setSecurity(new soap.BasicAuthSecurity('username', 'password'));