节点肥皂更改标头前缀



我正在尝试从< soap:header> to< soapenv:header>

更改标头前缀

这是我的代码:

var args = { 
    "soapenv:Header": { }
};
soap.createClient(url, {"disableCache":true}, function(err, client) {

        client.addSoapHeader(args);

        client.myMethod( {}, function(err, result) {
            console.log("last: " + client.lastRequest); // <-- here
        });
 });  

它产生以下XML,但插入&lt; soapenv:header>在内部&lt; soap:header>。

<​?xml version="1.​​0" encoding="utf-​​8"?>​​
    <​soap:​Envelope xmlns:​soap="http:​/​​/​​schemas.​​xmlsoap.​​org/​​soap/​​envelope/​​" xmlns:​xsi="http:​/​​/​​www.​​w3.​​org/​​2001/​​XMLSchema-​​instance" >​​
    <​soap:​Header>​​
     <​soapenv:​Header>​​
     <​/​​soapenv:​Header>​​
    <​/​​soap:​Header>
    ​​<​soap:​Body>
    <​/​​soap:​Body>
    ​​<​/​​soap:​Envelope>​​

是否可以更改&lt; soap的前缀:标头>?

我设法弄清楚了,您可以在信封密钥中传递'soapenv',这将更改标头前缀:

const wsdlOptions = {
    "envelopeKey": 'soapenv',
    "disableCache":true
};
soap.createClient(url, wsdlOptions, function(err, client) {
}

产生

<​soapenv:​Header>​​
<​/​​soapenv:​Header>​​

最新更新