在发出请求之前修改SOAP Envelope XML

时间:2015-02-04 10:55:03

标签: node.js soap node-soap

我一直在尝试使用node-soap连接到Web服务,但继续收到错误“无法读取未定义的属性'Body'”。我认为问题是node-soap生成的SOAP信封不正确,需要使用ns1而不是tns。请查看PHP的SoapClient生成的信封,该信封成功连接到web服务和node-soap生成的信封,如下所示:

PHP

    <SOAP-ENV:Body>
        <ns1:IsHealthy/>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

节点SOAP

    <soap:Body>
        <tns:IsHealthy xmlns:tns="http://tempuri.org/" xmlns="http://tempuri.org/">
        </tns:IsHealthy>
    </soap:Body>
</soap:Envelope>

是否有设置告诉节点soap在发送之前使用ns1或修改信封的方法?

1 个答案:

答案 0 :(得分:0)

在创建客户端期间,您可以传递参数:

var options = {
   envelopeKey:'soapenv',
   xmlKey: 'sdm'
  };
soap.createClient(url, options, function(err, client) {

}

There is a third syntax that uses curly braces too