我在http://{{URL}}/web/wsGlbSSL.asmx?WSDL中使用SOAP WS,该函数是GetResultSQL,它需要参数。
例如,当我使用Google Chrome应用程序执行此操作时,调用完全通过:
<x:Envelope xmlns:x="http://schemas.xmlsoap.org/soap/envelope/" xmlns:br="http://URL/br/">
<x:Header/>
<x:Body>
<br:GetResultSQL>
<br:codUsuario>BLA</br:codUsuario>
<br:senha>BLABLA</br:senha>
<br:codColigada>0</br:codColigada>
<br:codAplicacao>V</br:codAplicacao>
<br:codSentenca>BLABLI</br:codSentenca>
<br:xmlParamsValue><![CDATA[<PARAM><EMAIL>teste@email.com</EMAIL></PARAM>]]></br:xmlParamsValue>
<br:schema>false</br:schema>
</br:GetResultSQL>
</x:Body>
但是使用node js node-soap我不能让它工作
var url = 'http://{{URL}}/web/wsGlbSSL.asmx?WSDL';
var args = {
codUsuario: "BLA"
,senha : "BLABLA"
,codColigada: "0"
,codAplicacao: "V"
,codSentenca: "BLABLI"
,xmlParamsValue: "<![CDATA[<PARAM><EMAIL>teste@email.com</EMAIL></PARAM>]]>"
,schema: "false"
};
soap.createClient(url, args, function(err, client) {
if(err){
console.log(err);
console.log('########## Erro ao criar cliente ##########');
return;
}
client.GetResultSQL(args, function(err, result) {
if(err){
console.log(err); //this is always thrown
console.log('########## Erro ao consumir servico ##########');
return;
}
console.log(result);
});
});它给了我同样的错误,就像我通过chrome应用程序传递了一些错误的参数一样。“无法将XML转换为对象数据集”。
发布于 2016-04-14 00:47:24
好了,我知道是什么了。Soap-node不支持CDATA,所以我编辑它来处理我的CDATA。
https://stackoverflow.com/questions/36559484
复制相似问题