Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) WebService- Erro no retorno do XML


jonass

Pergunta

Oi galera,

Sou iniciante no ASP e de cara já tenho que trabalhar com webservide :wacko:

Mas vale o desafio...

Bem, o webservice está funcionando. O problema é fazer a consumir ele no ASP.

Até agora, cheguei no código abaixo:

<% 
Response.ContentType = "text/xml"

'requisita_dados.asp 
'Página que faz a requisição passando um XML 
strXml = ""
strXml = strXml & "<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:wss='http://www.meusite.com.br/WSCliente/'>"
strXml = strXml & " <soapenv:Header>"
strXml = strXml & "<wss:AutenticacaoWebService>"
strXml = strXml & "         <wss:Usuario>user</wss:Usuario>"
strXml = strXml & "         <wss:Senha>1234</wss:Senha>"
strXml = strXml & "      </wss:AutenticacaoWebService>"
strXml = strXml & "   </soapenv:Header>"
strXml = strXml & "   <soapenv:Body>"
strXml = strXml & "      <wss:ConsultarPessoa>"
strXml = strXml & "         <wss:cpf>12312312387</wss:cpf>"
strXml = strXml & "      </wss:ConsultarPessoa>"
strXml = strXml & "   </soapenv:Body>"
strXml = strXml & " </soapenv:Envelope>"

sUrl = "http://homologacao.meusite.com.br:8044/WSCliente/cadastro.asmx" 
  
Set xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")
Set xmlResult = Server.CreateObject("MSXML2.DomDocument.3.0")
xmlResult.async = False

xmlhttp.Open "POST", sUrl, False 
xmlhttp.Send strXml 'Envia o XML 

xmlhttp.waitForResponse 200

xmlResult.loadXML(xmlhttp.ResponseText)
xmlResult.save(Server.MapPath("Teste.xml")) 

response.write "Retorno XML inicio <BR><hr>"

if xmlResult.parseError.errorCode <> 0 then
    response.write "Cod ERRO: " & xmlResult.parseError.errorCode
    response.write "<br>"
    response.write "Desc. ERRO: " & xmlResult.parseError.reason
else
    Response.write xmlhttp.ResponseText
End if

response.write "<BR><hr>Retorno XML FIM<br>"

 %>
XML recebido com sucesso.

Isto está me retornando um XML vazio e o seguinte erro:

Cod ERRO: -1072896680

Desc. ERRO: O documento XML deve ter um elemento de nível superior.

valeu !!!

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

na verdade o erro é auto descritivo os xmls em questão tem de estar corretos

...
<xml>
    <cod>
        .......
    </cod>
    <cod>
        .......
    </cod>
    <cod>
        .......
    </cod>
</xml>

você pode pegar a saida do xmlhttp como texto, adicionar as correções e depois dar load nele como xml

Link para o comentário
Compartilhar em outros sites

  • 0

CONSEGUI !!!!!!!

O erro que estava dando era porque estava retornando um XML vazio.

Isto porque eu estava enviando o xml errado.

Eu estava enviando o xml em string, mas deveria estar enviando como xml mesmo.

Alterei o trecho abaixo:

Set xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")
Set xmlEnvio = Server.CreateObject("MSXML2.DomDocument.3.0")
Set xmlResult = Server.CreateObject("MSXML2.DomDocument.3.0")

xmlResult.async = False
xmlEnvio.async = False

xmlEnvio.loadXML(strXml)
if xmlEnvio.parseError.errorCode <> 0 then
    response.write "Cod ERRO1: " & xmlEnvio.parseError.errorCode
    response.write "<br>"
    response.write "Desc. ERRO1: " & xmlEnvio.parseError.reason
else
    Response.write "carregou xml envio com sucesso<br>"
End if


xmlhttp.Open "POST", sUrl, False 
'xmlhttp.Send strXml 'Envia o XML 
xmlhttp.Send xmlEnvio 'Envia o XML

valeu bareta, não resolveu diretamente o meu problema mas clareou o meu caminho....

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...