格式化SOAP请求信封

我正尝试使用节点js格式化SOAP请求信封,应该如下所示:

<?xml version="1.0" encoding="UTF-8"?> <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://xml.apache.org/xml-soap" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"> <env:Body> <env:getStaffRecords env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"> <params xsi:type="ns1:Map"> <item> <key xsi:type="xsd:string">limit</key> <value xsi:type="xsd:string">3</value> </item> <item> <key xsi:type="xsd:string">page</key> <value xsi:type="xsd:string">1</value> </item> </params> </env:getStaffRecords> </env:Body> </env:Envelope> 

我提到: https : //loopback.io/doc/en/lb3/Strong-soap.html#xml-attributes

但是,我无法得到预期的产出。 下面是我的演示代码和输出。

 "use strict"; var soap = require('strong-soap').soap; var WSDL = soap.wsdl; var url = "https://testrequest.ch/api/soap/whoswho/wsdl"; // var args = null; // var args = {limit: '10', page: '1'}; var args = { params: { $attributes: { $xsiType: "ns1:Map", }, item: [{ key: { $attributes: { $xsiType: "xsd:string", }, $value: "limit" }, value: { $attributes: { $xsiType: "xsd:string", }, $value: "3" } }, { key: { $attributes: { $xsiType: "xsd:string", }, $value: "page" }, value: { $attributes: { $xsiType: "xsd:string", }, $value: "1" } }] }}; var wsdlOptions = { }; soap.createClient(url, wsdlOptions, function(err, client){ client.setSecurity(new soap.BasicAuthSecurity("api_noob", "randompassword")); client.getStaffRecords(args, function(err, result, envelope){ //console.log(envelope); //console.log('Result: \n' + JSON.stringify(result)); console.log('last request: ', client.lastRequest); }) }); 

其中生成请求信封:

 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header/> <soap:Body> <ns1:getStaffRecords xmlns:ns1="https://testrequest.ch/api/whoswho/"> <params xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns2="" xsi:type="ns2:Map"> <item> <key xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd=" " xsi:type="xsd:string">limit</key> <value xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd ="" xsi:type="xsd:string">3</value> </item> <item> <key xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd=" " xsi:type="xsd:string">page</key> <value xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd ="" xsi:type="xsd:string">1</value> </item> </params> </ns1:getStaffRecords> </soap:Body> </soap:Envelope> 

  • Node.js是否准备好用于关键业务应用?
  • Spotify API Web:没有Node.js的OAuth
  • 简单的WebApp - 通过HTML / AWS Javascript SDK将file upload到S3
  • 在Azure上部署反应项目
  • 使用Node.JS创build一个REST Web服务
  • 什么是在node.js项目中通常使用的index.js
  • 将Web服务隐藏到NodeJS中的外行用户
  • ExtJS应用程序是否与HTML页面的其余部分共享会话?