【问题标题】:Node-SOAP Header Issue节点 SOAP 标头问题
【发布时间】:2016-01-25 06:14:02
【问题描述】:

我需要在 <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 的 sn-ps,很明显 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>

【问题讨论】:

  • 你解决了吗?

标签: node.js soap node-soap


【解决方案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
  });
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多