1

我需要<soap:Header>在某个属性名称“RequestHeader”下包含身份验证内容,例如<soap:Header><RequestHeader></RequestHeader></soap:Header><soap:Body>

但不幸的是,node-soap 把它放在里面<soap:Body>。所以我看到的是<soap:Header></soap:Header><soap:Body><RequestHeader>

问题是,我如何将其移至soap:Header?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>

4

1 回答 1

-1

您是否尝试将 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
  });
});
于 2017-04-21T04:23:34.150 回答