3

我一直在尝试使用 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>

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

4

1 回答 1

0

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

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

}

文档

于 2017-07-17T23:14:08.407 回答