我在http:// {{URL}} /web/wsGlbSSL.asmx?WSDL中使用SOAP WS 该函数是GetResultSQL,它需要参数。
当我使用谷歌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>
但是使用节点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应用程序传递参数错误一样。 &#34;无法将XML转换为对象DATASET&#34;。
答案 0 :(得分:0)
好的,发现它是什么。 Soap-node不支持CDATA,所以我编辑它来处理我的CDATA。