如何在node-soap中使用派生types
我使用Node Soap https://github.com/vpulim/node-soap发送SOAP请求并parsing答案。
现在我有一个派生types的服务<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' } }