我要求在<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>
答案 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
});
});