Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Diego Gonçalves

xmlhttprequest

Recommended Posts

cara, você postou linhas diferentes de erro. qual a linha do erro, mensagem e código para alinhavarmos o debate

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele só mostra o 80004005, ou dá alguma outra mensagem...

 

verifique se você esta fazendo as modificações de cabeçalho HTTP antes de gravar o conteúdo da página

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele só mostra o 80004005, ou dá alguma outra mensagem...

 

verifique se você esta fazendo as modificações de cabeçalho HTTP antes de gravar o conteúdo da página

 

Ele só mostra esse erro msm. bom segue o meu cód. não muito diferente da última postagem:

 


<%
Usuario = Request.Form("usuario")
Senha = Request.Form("senha")
chassi = request.Form("chassi")


Dim xmlhttp, envelopeXML, url
url = "www.centralconsultas.com.br/WsCosultaService/Service.asmx/ConsultaDecodificadorChassi"
envelopeXML = ("Usuario=" & Usuario & "&Senha=" & Senha & "&Chassi= " & Chassi)

set xmlhttp=server.createobject("MSXML2.XMLHTTP") 
xmlhttp.open "POST", url , false
xmlhttp.setRequestHeader "Content-Type","application/x-www-form-urlencoded"
xmlhttp.send envelopeXML

'Estado 4: requisição foi feita e completada sem falhas. Status 200: comunicação realizada com êxito junto ao webservice.
If xmlhttp.readystate = 4 And xmlhttp.status = 200 Then
      Dim recebeXML

      'Criado um DOM para poder receber o arquivo XML e navegar dentro dele.
      Set recebeXML = Server.CreateObject("Microsoft.XMLDOM")
      recebeXML.setProperty "ServerHTTPRequest", True
      recebeXML.async = false
      recebeXML.LoadXML(xmlhttp.responseXML.xml)

      If recebeXML.parseError.errorCode <> 0 Then
	  		  Dim percorreXML

            'Carregando nó principal
            Set percorreXML = recebeXML.documentElement 

            'Teste - Exibindo conteúdo do XML
            response.write percorreXML.childNodes.item(0).childNodes.item(0).attributes(0).text
End if    
End If

Set xmlhttp = nothing
Set recebeXML = nothing
Set percorreXML = nothing
%>

se não me engano é assim

recebeXML.LoadXML(xmlhttp.responseXML)

 

É, eu ja havia tentado assim tb, e nada...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz duas alterações agora:

 

1° url = Http://e o endereço;.... estava sem o http://

 

2°recebeXML.LoadXML(xmlhttp.responseXML) retirei o reponseXML.XML

 

Agora o erro está assim:

 

Microsoft VBScript runtime error '800a000d'

 

Type mismatch: 'LoadXML'

 

/direciona.asp, line 49

 

Só que meu código vem só até a linha 41.

Compartilhar este post


Link para o post
Compartilhar em outros sites

velho o certo é

 

xmlhttp.responseXML

Não coloca .xml não

 

Agora teste assim

 

<%
Usuario = Request.Form("usuario")
Senha = Request.Form("senha")
chassi = Request.Form("chassi")


Dim xmlhttp, url
url = "www.centralconsultas.com.br/WsCosultaService/Service.asmx/ConsultaDecodificadorChassi?Usuario=" & Usuario & "&Senha=" & Senha & "&Chassi= " & Chassi & ""

set xmlhttp=server.createobject("MSXML2.XMLHTTP")
xmlhttp.open "POST",url,false
xmlhttp.setRequestHeader "Content-Type","application/x-www-form-urlencoded"
xmlhttp.send ""

'Estado 4: requisição foi feita e completada sem falhas. Status 200: comunicação realizada com êxito junto ao webservice.
If xmlhttp.readystate = 4 And xmlhttp.status = 200 Then
      Dim recebeXML

      'Criado um DOM para poder receber o arquivo XML e navegar dentro dele.
      Set recebeXML = Server.CreateObject("Microsoft.XMLDOM")
      recebeXML.setProperty "ServerHTTPRequest",True
      recebeXML.async = false
      recebeXML.LoadXML(xmlhttp.responseXML)

      If recebeXML.parseError.errorCode <> 0 Then
                          Dim percorreXML

            'Carregando nó principal
            Set percorreXML = recebeXML.documentElement

            'Teste - Exibindo conteúdo do XML
            response.write percorreXML.childNodes.item(0).childNodes.item(0).attributes(0).text
      End if
End If

Set xmlhttp = nothing
Set recebeXML = nothing
Set percorreXML = nothing
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

daá uma pesquisada no forum k existem exemplos, e pode te ajudar, da uma analisada neles...

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema é que já estou pesquisando isso ha dias... já tentei com vários códigos... mas até agora...

 

Algum de vocês já fizeram algo parecido com o que estou tentando;Consumir webservice no ASP..?? Como você fez?

Meu código está perto ou loge de realizar essa função??? Caso possa me ajudar eu agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O código, passado pelo pratike, naun ajudou você !?!?!?

 

Olha este exemplo, usando classe

 

<%
'***********************************************************************************
'' Classe para acessar WebServices' Author: Angelo Bestetti
' http://www.i-stream.com.br' Purpose: Acessar webservices www.consultacpf.com
' Date: 2007/10/18
'***********************************************************************************
Option Explicit'**************************************************** 
' Classe para WebService'****************************************************
Class WebService  Public Url  Public Method  Public Response  Public Parameters 
  ' Funcao para Invokar o WebService  Public Function Invoke()    Dim xmlhttp
    Set xmlhttp = Server.CreateObject("MSXML2.XMLHTTP")
    xmlhttp.open "POST", Url & "/" & Method, false
    xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    xmlhttp.Send Parameters.toString    response = xmlhttp.responseText
    set xmlhttp = nothing  End Function      Private Sub Class_Initialize()
    Set Parameters = New wsParameters  End Sub    Private Sub Class_Terminate()
    Set Parameters = Nothing  End Sub  End class
'**************************************************** ' Classe para wsParameters
'****************************************************Class wsParameters
  Public mCol  Public Function toString()    Dim nItem    Dim buffer
    buffer = ""    For nItem = 1 to Count
      buffer = buffer & Item(nItem).toString & "&"    Next
    If right(buffer,1)="&" then      buffer = left(buffer,len(buffer)-1)
    End if    toString = buffer   End Function    Public Sub Clear
    set mcol = nothing 
    Set mCol = Server.CreateObject("Scripting.Dictionary")   End Sub  
  Public Sub Add(pKey,pValue)    Dim NewParameter  
    Set NewParameter = New wsParameter    NewParameter.Key = pKey
    NewParameter.Value = pValue    mCol.Add mCol.count+1, NewParameter  
    Set NewParameter = Nothing  End Sub    Public Function Item(nKey)
    Set Item=mCol.Item(nKey)  End Function    Public Function ExistsXKey(pKey)
    Dim nItem      For nItem = 1 to mcol.count
      If mCol.Item(nItem).key = pKey Then        ExistsXKeyword = True
        Exit For      End if    Next  End Function    Public Sub Remove(nKey)
    mCol.Remove(nKey)  End sub    Public Function Count()    Count=mCol.count
  End Function    Private Sub Class_Initialize()
    Set mCol = Server.CreateObject("Scripting.Dictionary")  End Sub  
  Private Sub Class_Terminate()    Set mCol = Nothing  End Sub  End class
'**************************************************** ' Classe para wsParameter
'****************************************************Class wsParameter
   Public Key   Public Value   Public Function toString()
     toString = Key & "=" & Value   End FunctionEnd Class%>

Criar um arquivo onde voce vai fazer sua consulta, o exemplo abaixo realiza uma consulta de exemplo no www.consultacpf.com

 

<!--#include file="cls_webservice.asp"--><%    dim ws 
    set ws = new webservice
    ws.url = "http://www.consultacpf.com/webservices/consultacpf.asmx"'>http://www.consultacpf.com/webservices/consultacpf.asmx"
        ' Podendo ser: ConsultaSaldoCliente, ConsultaSinteseCadastralSERASA, ConsultaSimplesSERASASandBox, ConsultaSimplesSERASA, ConsultaDetalhadaSERASA
        ' Maiores Informações: http://www.consultacpf.com/webservices/consultacpf.asmx
    ws.method = "ConsultaDetalhadaSERASA" 
    ws.parameters.Add "Email","seuemailaqui"
    ws.parameters.Add "Senha","suasenhaaqui"
    ws.parameters.Add "Documento","cpf/cnpj a ser consultado"     ws.Invoke
    response.Write ws.response    set ws = nothing%>

Este exemplo mostra como é facil chamar um webservice e receber um XML de retorno. Claro que você pode adaptar este código para fazer consultas em outro webservice qualquer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Velho, como faço pra conseguir me cadastrar neste webservice? dae fica mais facil tentar te ajudar.

 

Bom amigo, isso é um serviço pago...

 

Graças a Deus, e a vcs, estou quase... Agora eu só preciso saber como que eu exibo os dados de uma forma mais amigável... O resultado da pesquisa vem desse jeito abaixo:

 

 

<?xml version="1.0" encoding="utf-8" ?> 
  <string xmlns="http://tempuri.org/"><DecodificadorChassi xmlns="http://tempuri.org/DecodificadorChassi.xsd"> <Mensagem> <Codigo xmlns="">5</Codigo> </Mensagem> <Entrada> <Usr xmlns="">LK8K9SK5KS</Usr> <Senha xmlns="">XLKSSS</Senha> <IP xmlns="">189.13.XXX.XXX</IP> <MAC xmlns="" /> <Chassi xmlns="">9c2kc08108r000000</Chassi> </Entrada> <Saida> <Chassi xmlns="">9C2KC08108R000000</Chassi> <Fabricante xmlns="">HONDA</Fabricante> <AnoFabricacao xmlns="" /> <AnoModelo xmlns="">2008</AnoModelo> <Combustivel xmlns="">GASOLINA</Combustivel> <QuantidadeDeEixos xmlns="" /> <TipoDaCarroceria xmlns="">MOTOCICLETA</TipoDaCarroceria> <RegiaoGeografica xmlns="">AMERICA DO SUL</RegiaoGeografica> <Pais xmlns="">BRASIL</Pais> <LocalDaFabrica xmlns="">MANAUS - AM</LocalDaFabrica> <Marca xmlns="">HONDA</Marca> <Modelo xmlns="">CG 150 TITAN KS GAS.</Modelo> <Veiculo xmlns="">CG 150</Veiculo> <Versao xmlns="">TITAN KS</Versao> <Motor xmlns="" /> <TipoDoMotor xmlns="" /> <Tracao xmlns="" /> <Transmissao xmlns="" /> <Portas xmlns="" /> <Classificacao xmlns="" /> <Comprimento xmlns="" /> <MesDeProducao xmlns="" /> <PesoBruto xmlns="" /> <TipoDeFreio xmlns="" /> <DigitoVerificador xmlns="">OK</DigitoVerificador> <VerificacaoDoSerial xmlns="">OK</VerificacaoDoSerial> <DistanciaEntreEixos xmlns="" /> <CodigoFipe xmlns="" /> <Conclusao xmlns="">COMPLETA</Conclusao> <QuantidadeDeIrregularidades xmlns="" /> <CodigoDaIrregularidade xmlns="">00</CodigoDaIrregularidade> </Saida> </DecodificadorChassi></string> 

E eu queria exibir tipo assim:

 

Chassi: 9c2k...

Motor: 000ss000s0;...

Ano Fabricação : 555s55s55

Versão: 1213121

 

Eu sei que vou ter que utilizar o XMLDOM... mas como é que mexe com isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gente, estou com uma pequena dúvida... por que que ta dando esse erro? É sintaxe errada??? ou que hein?

 

Tipo de erro:

Erro de tempo de execução do Microsoft VBScript (0x800A01A8)

Objeto necessário: 'selectSingleNode(...)'

/website/web/sistema/resultado.asp, line 34

 

 

Se refere a:

Chassi = ObjXmlDoc.selectSingleNode("./Chassi").text

 

 

Set objXmlDoc = Server.CreateObject("MSXML2.DOMDocument.3.0")
objXmlDoc.async = False
objXmlDoc.loadXML(ws.response)

 
  if TypeName(objXmlDoc) = "DOMDocument" then 
  
    'armazenando o retorno em variáveis
  	Chassi 	   = ObjXmlDoc.selectSingleNode("./Chassi").text
	fabricante = objXmlDoc.selectSingleNode("./Fabricante").text
	AnoFabrica = objXmlDoc.selectSingleNode("./AnoFabricacao").text
	AnoModelo  = objXmlDoc.selectSingleNode("./AnoModelo").text
	Combustivel= objXmlDoc.selectSingleNode("./Combustivel").text
	TCarroceria= objXmlDoc.selectSingleNode("./TipoDaCarroceria").text
	LocalFab   = objXmlDoc.selectSingleNode("./LocalDaFabrica").text
	Veiculo	   = objXmlDoc.selectSingleNode("./Veiculo").text
    
	   if len(trim(tipo))=2 then 
  		tipo = uCase(left(tipo,1))&lCase(right(tipo,1))
   	   end if
  End if

  'Mostrando na tela o resultado
   Response.Write("Chassi: "&Chassi&"<br>")
   Response.Write("Fabricante: "&Fabricante&"<br>")
   Response.Write("Ano fabricação: "&AnoFabrica&"<br>")
   Response.Write("Ano Modelo: "&AnoModelo&"<br>")
   Response.Write("Combustível: "&Combustivel&"<br>")
   Response.Write("Tipo Carroceria: "&TCarroceria&"<br>")
   Response.Write("Local da fabrica: "&LocalFab&"<br>")
   Response.Write("Veículo: "&Veiculo&"<br>")

%>

<%set ws = nothing%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mano tente assim

 

Chassi = ObjXmlDoc.selectSingleNode("//Chassi").text

ou assim

 

Chassi = ObjXmlDoc.selectSingleNode("/Chassi").text

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mano tente assim

 

Chassi = ObjXmlDoc.selectSingleNode("//Chassi").text

ou assim

 

Chassi = ObjXmlDoc.selectSingleNode("/Chassi").text
Ééé... tah embaçado!!!!

 

Continua com o mesmo erro, eu tb ja havia tentado dessa forma, mas parece que o erro está em outro lugar...

 

Parece que o node está vazio...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mano tente assim

 

Chassi = ObjXmlDoc.selectSingleNode("//Chassi").text

ou assim

 

Chassi = ObjXmlDoc.selectSingleNode("/Chassi").text
Dei uma fuçada na net e encontrei algumas situações em que eram feitos laços, e exibindo os valores dos nodes... mais ou menos assim:

 

For i = 0 to raiz.childNodes.length -1

%><tr><%
%><td><%=raiz.NodeName%></td>
  <td><%=raiz.childNodes.item(i).childNodes.item(0).text%></td>
  <td><%=raiz.childNodes.item(i).childNodes.item(1).text%></td>
<%next%>
Você acha melhor utilizar dessa maneira??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Velho testado e aprovado, agora vai rsrsrsrsrsrs

 

<%
Set objXmlDoc = Server.CreateObject("MSXML2.DOMdocument.3.0")

   objXmlDoc.async = False
   objXmlDoc.loadXML(ws.response)


   if TypeName(objXmlDoc) = "DOMDocument" then

      'ENTRADA
      usuario = XmlDoc.selectSingleNode("//Entrada//Usr").text
      senha = XmlDoc.selectSingleNode("//Entrada//Senha").text
      ip = XmlDoc.selectSingleNode("//Entrada//IP").text
      mac = XmlDoc.selectSingleNode("//Entrada//MAC").text
      chassientrada = XmlDoc.selectSingleNode("//Entrada//Chassi").text

      'SAIDA
      chassisaida = XmlDoc.selectSingleNode("//Saida//Chassi").text
      fabricante = XmlDoc.selectSingleNode("//Saida//Fabricante").text
      anofabricacao = XmlDoc.selectSingleNode("//Saida//AnoFabricacao").text
      anomodelo = XmlDoc.selectSingleNode("//Saida//AnoModelo").text
      combustivel = XmlDoc.selectSingleNode("//Saida//Combustivel").text
      qauntidadedeeixos = XmlDoc.selectSingleNode("//Saida//QuantidadeDeEixos").text
      tipodacarroceria = XmlDoc.selectSingleNode("//Saida//TipoDaCarroceria").text
      regiaogeografica = XmlDoc.selectSingleNode("//Saida//RegiaoGeografica").text
      pais = XmlDoc.selectSingleNode("//Saida//Pais").text
      localdafabrica = XmlDoc.selectSingleNode("//Saida//LocalDaFabrica").text
      marca = XmlDoc.selectSingleNode("//Saida//Marca").text
      modelo = XmlDoc.selectSingleNode("//Saida//Modelo").text
      veiculo = XmlDoc.selectSingleNode("//Saida//Veiculo").text
      versao = XmlDoc.selectSingleNode("//Saida//Versao").text
      motor = XmlDoc.selectSingleNode("//Saida//Motor").text
      tipodomotor = XmlDoc.selectSingleNode("//Saida//TipoDoMotor").text
      tracao = XmlDoc.selectSingleNode("//Saida//Tracao").text
      transmissao = XmlDoc.selectSingleNode("//Saida//Transmissao").text
      portas = XmlDoc.selectSingleNode("//Saida//Portas").text
      classificacao = XmlDoc.selectSingleNode("//Saida//Classificacao").text
      comprimento = XmlDoc.selectSingleNode("//Saida//Comprimento").text
      mesdeproducao = XmlDoc.selectSingleNode("//Saida//MesDeProducao").text
      pesobruto = XmlDoc.selectSingleNode("//Saida//PesoBruto").text
      tipodefreio = XmlDoc.selectSingleNode("//Saida//TipoDeFreio").text
      digitoverificador = XmlDoc.selectSingleNode("//Saida//DigitoVerificador").text
      verificacaodoserial = XmlDoc.selectSingleNode("//Saida//VerificacaoDoSerial").text
      distanciaentreeixos = XmlDoc.selectSingleNode("//Saida//DistanciaEntreEixos").text
      codigofipe = XmlDoc.selectSingleNode("//Saida//CodigoFipe").text
      conclusao = XmlDoc.selectSingleNode("//Saida//Conclusao").text
      quantidadedeirregularidades = XmlDoc.selectSingleNode("//Saida//QuantidadeDeIrregularidades").text
      codigodairregularidade = XmlDoc.selectSingleNode("//Saida//CodigoDaIrregularidade").text

           if len(trim(tipo))=2 then
                tipo = uCase(left(tipo,1))&lCase(right(tipo,1))
           end if
  End if

'Mostrando na tela o resultado
Response.Write("<strong>Entrada</strong><br />")
Response.Write("Usuário: " & usuario & "<br>")
Response.Write("Senha: " & senha & "<br>")
Response.Write("Ip: " & ip & "<br>")
Response.Write("Mac: " & mac & "<br>")
Response.Write("Chassi Entrada: " & chassientrada & "<br>")

Response.Write("<strong>Saída</strong><br />")
Response.Write("Chassi Saída: " & chassisaida & "<br>")
Response.Write("Fabricante: " & fabricante & "<br>")
Response.Write("Ano Fabricação: " & anofabricacao & "<br>")
Response.Write("Ano Modelo: " & anomodelo & "<br>")
Response.Write("Combustível: " & combustivel & "<br>")
Response.Write("Eixos: " & quantidadedeeixos & "<br>")
Response.Write("Tipo da Carroceria: " & regiaogeografica & "<br>")
Response.Write("Pais: " & pais & "<br>")
Response.Write("Local da Fábrica: " & localdafabrica & "<br>")
Response.Write("Marca: " & marca & "<br>")
Response.Write("Modelo: " & modelo & "<br>")
Response.Write("Veículo " & veiculo & "<br>")
Response.Write("Versão: " & versao & "<br>")
Response.Write("Motor: " & motor & "<br>")
Response.Write("Tipo do Motor: " & tipodomotor & "<br>")
Response.Write("Tração: " & tracao & "<br>")
Response.Write("Transmissao: " & transmissao & "<br>")
Response.Write("Portas: " & portas & "<br>")
Response.Write("Classificação: " & classificacao & "<br>")
Response.Write("Comprimento: " & comprimento & "<br>")
Response.Write("Mês de Produção: " & mesdeproducao & "<br>")
Response.Write("Peso Bruto: " & pesobruto & "<br>")
Response.Write("Tipo de Freio: " & tipodefreio & "<br>")
Response.Write("Digito Verificador: " & digitoverificador & "<br>")
Response.Write("Verificação do Serial: " & verificacaodoserial & "<br>")
Response.Write("Distancia Entre Eixos: " & distanciaentreeixos & "<br>")
Response.Write("Código Fipe: " & codigofipe & "<br>")
Response.Write("Conclusão: " & conclusao & "<br>")
Response.Write("Quantidade de Irregularidades: " & quantidadedeirregularidades & "<br>")
Response.Write("Código da Irregularidade: " & codigodairregularidade & "<br>")

set ws = nothing
set objXmlDoc = nothing
%>

[]'a

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aêê Patrick, brigadão mesmo!!!

 

XMLdoc ou ObjXMLdoc...

 

Quando a varável é XMLdoc o erro é esse:

 

Erro de tempo de execução do Microsoft VBScript (0x800A01A8)

Objeto necessário:"

No caso a cima, parece que está vazia a variável...

 

Quando a varável é ObjXMLdoc o erro é esse:

 

Erro de tempo de execução do Microsoft VBScript (0x800A01A8)

Objeto necessário: 'selectSingleNode(...)'

No caso a cima, não tenho nem ideia...rsrs

 

Me refiro a esse cod:

usuario = XmlDoc.selectSingleNode("//Entrada//Usr").text

Bom, vou continuar tentando aqui, se você souber do que se trata poste aí please.... ou se tiver alguma ideia idem....

 

O fato é, ta osso!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.