尝试从Node进行SOAP调用。我有一些模式名称问题,使服务调用成功。
以下是现有SOAP期望的请求
需要
<soapenv:Body>
***<ser:MyServiceName> ***
<ser:request>
<ecms:serviceId>123456789</ecms:serviceId
<ecms:TransactionID>TestTransId</ecms:TransactionID>
</ser:request>
</ser:MyServiceName>
</soapenv:Body>
这是我的请求看起来像
我现在有什么
<soap:Body>
***<xsns:MyServiceName xmlns:xsns="http://example.com/ecms/services" xmlns="http://example.com/ecms/services">***
<ser:request>
<ecms:serviceId>123456789</ecms:serviceId>
<ecms:TransactionID>TestTransId</ecms:TransactionID>
</ser:request>
</xsns:MyServiceName>
</soap:Body>
我的问题是如何编辑/更正元素
”
"<xsns:MyServiceName xmlns:xsns="http://example.com/ecms/services" xmlns="http://example.com/ecms/services">"
到
<ser:MyServiceName>
如上面预期的SOAP请求所示。
这是我的代码
var args = {"ser:request":{"ecms:serviceId”:”123456789”, "ecms:TransactionID":"TestTransId"}};
soap.createClient(url, function(err, client) {
client.MyServiceName(args, function(err, result, raw, soapHeaders) {
console.log('LAST REQUEST ');
console.log(client.lastRequest);
console.log(result);
});
});
我确信这与选项有关,但我无法弄明白。 我尝试使用这样的选项,但它没有解决问题。
var options = {
ignoredNamespaces: true
};
任何想法,建议都将不胜感激。
以下是此服务的wsdl的外观
<wsdl:message name="IServiceRequest_MyServiceName_InputMessage">
<wsdl:part xmlns:xsns="http://example.com/ecms/services" name="parameters" element="xsns:MyServiceName"/>
</wsdl:message>