Node-SOAP标头问题

时间:2016-01-25 06:14:02

标签: node.js soap node-soap

我要求在<soap:Header>下的某个属性名称下包含身份验证内容&#34; RequestHeader&#34;比如<soap:Header><RequestHeader></RequestHeader></soap:Header><soap:Body>

但不幸的是,node-soap将其置于<soap:Body>内。 所以我看到的是<soap:Header></soap:Header><soap:Body><RequestHeader>

问题是,如何将其移至肥皂:标题? wsdl可能在这里有问题但是修复它现在不是一个选择。

看着wsdl的角度, 这些是来自wsdl的片段,很明显wsdl声明RequestHeaderElement应该在标题中,我想知道它为什么会被抛到身体上?

<wsdl:input name="SendSms"> <soap:header message="tns:SendSms" part="Headers" use="literal" /> <soap:body parts="Parameters" use="literal" /> </wsdl:input>

<wsdl:message name="SendSms"> <wsdl:part element="ns1:RequestHeaderElement" name="Headers" /> <wsdl:part element="tns:SendSmsRequestElement" name="Parameters" /> </wsdl:message>

1 个答案:

答案 0 :(得分:0)

您是否尝试过向标头添加XML字符串文字?

const auth = '<RequestHeader></RequestHeader>'
soap.createClient(url, soapOptions, function (err, client) {
  client.addSoapHeader(auth);
  client.myFunction(args, function (err, result) {
    console.log(client.lastRequest) //see the xml generated
  });
});