首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用节点- SOAP设置soap版本。

使用节点- SOAP设置soap版本。
EN

Stack Overflow用户
提问于 2014-07-24 13:23:04
回答 3查看 4.2K关注 0票数 4

我正在使用这个npm-模块:https://github.com/vpulim/node-soap

我想要使用的and服务仅使用SOAP1.2,并在使用任何其他SOAP版本时返回一个服务器错误。

是否有人经历过同样的问题,并且知道如何设置SOAP版本?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-03-08 23:40:57

您可以进入soap\lib\client.js到第186行并修改信封语法,以便它符合SOAP1.2:

代码语言:javascript
复制
 //modify this with the envelope used by soap1.2:
xml = "<soap:Envelope " +
    "xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" " +
    'xmlns:xsd="http://www.w3.org/2001/XMLSchema"' +
    'xmlns:ns2="http://xml.apache.org/xml-soap"' +
    "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " +
    encoding +
    this.wsdl.xmlnsInEnvelope + '>' +
    //until here
    ((self.soapHeaders || self.security) ?
      (
        "<soap:Header>" +
        (self.soapHeaders ? self.soapHeaders.join("\n") : "") +
        (self.security ? self.security.toXML() : "") +
        "</soap:Header>"
      )
      :
        ''
      ) +
    "<soap:Body" +
    (self.bodyAttributes ? self.bodyAttributes.join(' ') : '') +
    ">" +
    message +
    "</soap:Body>" +
    "</soap:Envelope>";
票数 1
EN

Stack Overflow用户

发布于 2015-12-11 09:38:11

使用最新版本的https://github.com/vpulim/node-soap,可以选择设置SOAP1.2头

代码语言:javascript
复制
var options = {
    forceSoap12Headers: true
};
soap.createClient(url,options, function (err, client) {
    //Your soap call here
}); 

海事组织,我认为我们不应该修改库,这对升级没有好处。

票数 11
EN

Stack Overflow用户

发布于 2015-03-19 23:27:08

正如NicolasZ所说,我已经解决了这个问题,我当前的soap/lib/client.js是:

第187行:

代码语言:javascript
复制
 xml = "<soap:Envelope " +
//"xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" " +
"xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" " +
"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " +
encoding +
this.wsdl.xmlnsInEnvelope + '>' +
((self.soapHeaders || self.security) ?
  (
    "<soap:Header>" +
    (self.soapHeaders ? self.soapHeaders.join("\n") : "") +
    (self.security ? self.security.toXML() : "") +
    "</soap:Header>"
  )
  :
    ''
  ) +
"<soap:Body" +
(self.bodyAttributes ? self.bodyAttributes.join(' ') : '') +
">" +
message +
"</soap:Body>" +
"</soap:Envelope>";
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24934973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档