如何在 node-soap 中使用派生类型
How to use derived types in node-soap
我正在使用 Node Soap https://github.com/vpulim/node-soap 发送 SOAP 请求并解析答案。
现在我得到了一个具有派生类型的服务 <searchedAddress xsi:type="PersonAddressDescription">
。
如何在我的请求中指定 xsi:type="PersonAddressDescription"
?
我就是这样做的
const args = {
searchedAddress: {
location: {
street: 'Karl-Theorstraße 88',
zip: '34234',
city: 'Rummelshausen'
},
firstName: 'Foo',
lastName: 'Bar'
}
}
soap.createClient(WSDL, wsdlOptions, (err, client) => {
client.getReport(args, (err, result) => {
if (err !== null) {
console.log(client.lastRequest)
reject(err)
}
resolve(result)
})
})
请求应该是这样的:
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope">
<soap:Header/>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<getReportRequest xmlns="http://www.service.com/superservice/v1.00">
<searchedAddress xsi:type="PersonAddressDescription">
<location>
<street>Karl-Theorstraße 88</street>
<zip>34234</zip>
<city>Rummelshausen</city>
</location>
<firstName>Foo</firstName>
<lastName>Bar</lastName>
</searchedAddress>
</getReportRequest>
</s:Body>
</s:Envelope>
尝试将 attributes
添加到您请求的节点。来自
const args = {
searchedAddress: {
attributes: {
'xsi:type': 'PersonAddressDescription'
},
location: {
street: 'Karl-Theorstraße 88',
zip: '34234',
city: 'Rummelshausen'
},
firstName: 'Foo',
lastName: 'Bar'
}
}
我正在使用 Node Soap https://github.com/vpulim/node-soap 发送 SOAP 请求并解析答案。
现在我得到了一个具有派生类型的服务 <searchedAddress xsi:type="PersonAddressDescription">
。
如何在我的请求中指定 xsi:type="PersonAddressDescription"
?
我就是这样做的
const args = {
searchedAddress: {
location: {
street: 'Karl-Theorstraße 88',
zip: '34234',
city: 'Rummelshausen'
},
firstName: 'Foo',
lastName: 'Bar'
}
}
soap.createClient(WSDL, wsdlOptions, (err, client) => {
client.getReport(args, (err, result) => {
if (err !== null) {
console.log(client.lastRequest)
reject(err)
}
resolve(result)
})
})
请求应该是这样的:
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope">
<soap:Header/>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<getReportRequest xmlns="http://www.service.com/superservice/v1.00">
<searchedAddress xsi:type="PersonAddressDescription">
<location>
<street>Karl-Theorstraße 88</street>
<zip>34234</zip>
<city>Rummelshausen</city>
</location>
<firstName>Foo</firstName>
<lastName>Bar</lastName>
</searchedAddress>
</getReportRequest>
</s:Body>
</s:Envelope>
尝试将 attributes
添加到您请求的节点。来自
const args = {
searchedAddress: {
attributes: {
'xsi:type': 'PersonAddressDescription'
},
location: {
street: 'Karl-Theorstraße 88',
zip: '34234',
city: 'Rummelshausen'
},
firstName: 'Foo',
lastName: 'Bar'
}
}