Ir para conteúdo

Arquivado

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

Diego Gonçalves

xmlhttprequest

Recommended Posts

Fala pessoal...

 

Estou desenvolvendo um sistema aqui que pesquisará informações em um outro web service. Eu nunca mexi com xmlhttprequest DOM etc... porém, agora vou precisar dele ou deles...

 

Para eu poder pesquisar nesse web service deve estar assim:

Método: Post.

Content-Type:application/x-www-form-urlencoded

Parâmetros de entrada: Usuario, Senha, Placa.

 

Os parâmetros de saída são: Placa, Ano, Modelo, Tipo_carroceria,combustível, quantidade_de_eixos.

 

Eu até conseguir chegar ao resultado da pesquisa porém vem em xml, e é aí que tá, porque eu ainda não sei como eu faço para ler através do xmlhttprequest o resultado da pesquisa de outra page.

 

Caso alguém possa me ajudar eu agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites


DataToSend = "usuario=admin&senha=123&placa=III000"

 

set xmlhttp = Server.CreateObject("MSXML2.XMLHTTP.3.0")

 

xmlhttp.Open "POST", "http://www.endereco.com.br", False

 

xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"

xmlhttp.send DataToSend

 

Set xmlhttp = nothing

Compartilhar este post


Link para o post
Compartilhar em outros sites

 DataToSend = "usuario=admin&senha=123&placa=III000"

 set xmlhttp = Server.CreateObject("MSXML2.XMLHTTP.3.0")
 
 xmlhttp.Open "POST", "http://www.endereco.com.br", False
 
 xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
 xmlhttp.send DataToSend 
 
 Set xmlhttp = nothing

 

Obrigado pela ajuda até aqui.

 

Não sei se deu certo ou se deu errado, porque a tela fica branca rsrs...

 

Mas vamo supor que tenha dado certo, como eu exibiria os valores quando vem desse jeito:

 

<?xml version="1.0" encoding="utf-8" ?> 
  <string xmlns="http://000a.org/"><CHASSI xmlns="http://000a.org/Chassi.xsd"> <Mensagem> <Codigo xmlns="">5</Codigo> </Mensagem> <Entrada> <Usr xmlns="">XXXXXX</Usr> <Senha xmlns="">X0X0</Senha> <IP xmlns="">189.13.000.000</IP> <MAC xmlns="" /> <Chassi xmlns="">9bd17164g00000000</Chassi> </Entrada> <Saida> <Chassi xmlns="">9BD17164G00000000</Chassi> <Fabricante xmlns="">FIAT</Fabricante> <AnoFabricacao xmlns="" /> <AnoModelo xmlns="">2008</AnoModelo> <Combustivel xmlns="">FLEXIVEL ALCOOL/GASOLINA</Combustivel> <QuantidadeDeEixos xmlns="" /> <TipoDaCarroceria xmlns="">HATCHBACK</TipoDaCarroceria> <RegiaoGeografica xmlns="">AMERICA DO SUL</RegiaoGeografica> <Pais xmlns="">BRASIL</Pais> <LocalDaFabrica xmlns="">BETIM - MG</LocalDaFabrica> <Marca xmlns="">FIAT</Marca> <Modelo xmlns="">PALIO FIRE 1.0 FLEX(ALC./GAS.) 4P</Modelo> <Veiculo xmlns="">PALIO</Veiculo> <Versao xmlns="">FIRE</Versao> <Motor xmlns="">1.0</Motor> <TipoDoMotor xmlns="" /> <Tracao xmlns="" /> <Transmissao xmlns="" /> <Portas xmlns="">4</Portas> <Classificacao xmlns="" /> <Comprimento xmlns="" /> <MesDeProducao xmlns="" /> <PesoBruto xmlns="" /> <TipoDeFreio xmlns="" /> <DigitoVerificador xmlns="" /> <VerificacaoDoSerial xmlns="">OK</VerificacaoDoSerial> <DistanciaEntreEixos xmlns="" /> <CodigoFipe xmlns="" /> <Conclusao xmlns="">COMPLETA</Conclusao> <QuantidadeDeIrregularidades xmlns="" /> <CodigoDaIrregularidade xmlns="">00</CodigoDaIrregularidade> </Saida> </DecodificadorChassi></string>

 

Como eu manipulo isso? que nem ta lah, tipo de combustível aí eu queira exibir o valor, como eu pego esse valor ???

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode usar DOM para ler o xml de retorno. na tela branca, exiba o codigo fonte da página, possivelmente está o xml lá

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha como está o código, e agora ta dando erro na linha 15 que é a linha onde tem: ... xmlhttp.open "POST", "www.XXX.com.br/WsCosultaService/Service.asmx/ChassiPesquisa", false

 

 

O que será?

 

Se alguém puder me ajudar eu agradeço.

 

 

<%
Response.Buffer = True

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


Dim xmlhttp, envelopeXML
envelopeXML = (Usuario&Senha&Chassi)
Set xmlhttp = Server.CreateObject("MSXML2.XMLHTTP")
xmlhttp.open "POST", "www.XXX.com.br/WsCosultaService/Service.asmx/ChassiPesquisa", false
xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
'Supondo que a variável envelopeXML já possua um conteúdo.
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
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

velho qual o caminho real do webservice? pois assim fica complicado ajudar, se puder poste ae.

 

Segue

 

www.centralconsultas.com.br/WsCosultaService/Service.asmx/ConsultaDecodificadorChassi

Compartilhar este post


Link para o post
Compartilhar em outros sites

a autenticação está errada, você não está passando os parametros somente os valores:

envelopeXML = ("Usuario=" & Usuario & "&Senha=" & Senha & "&Chassi= " & Chassi)

Compartilhar este post


Link para o post
Compartilhar em outros sites

a autenticação está errada, você não está passando os parametros somente os valores:

envelopeXML = ("Usuario=" & Usuario & "&Senha=" & Senha & "&Chassi= " & Chassi)

 

É mesmo...

 

Mas o erro persiste na mesma linha, o que pode ser?

Compartilhar este post


Link para o post
Compartilhar em outros sites

parece que tem algum problema com a dll. tenta setar com essa:

set xmlhttp=server.createobject("microsoft.xmlhttp")

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, realmente parecia ser alguma coisa do iis, ou até mesmo de alguma dll., eu subi os arquivos para

www.diegogoncalves.com.br/teste.asp - porém o erro está na linha 29, que é:

 

If recebeXML.parseError.errorCode <> 0 Then

E agora o que pode ser heim??? Cada uma.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

veja esse exemplo:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
Option Explicit

Response.Charset = "UTF-8"

Server.ScriptTimeout = 360

Dim email
Dim resposta
Dim objXmlHttp
Dim objXML
Dim XmlDoc
Dim objBoolean
Dim test

email = Request.QueryString("email")

If validarEmail(email) Then
 Set objXmlHttp = CreateObject("MSXML2.ServerXmlHttp")
 objXmlHttp.open "GET", "http://www.webservicex.net/ValidateEmail.asmx/IsValidEmail?Email=" & email, False
 objXmlHttp.send XmlDoc
 Set objXML = Server.CreateObject("Microsoft.XMLDOM")
 objXML.async = True
 objXML.load(objXmlHttp.responseBody)
 If CStr(objXML.parseError.errorCode) <> "0" Then
 Response.Write "-500"
 Else
 On Error Resume Next
 Set objBoolean = objXML.getElementsByTagName("boolean")
 test = Cbool(objBoolean.item(0).text)
 If Err.Number <> 0 Then
 Response.Write "Descrição: " & Err.Description
 Set objBoolean = Nothing
 Set objXmlHttp = Nothing
 Response.End()
 End If 
 On Error Goto 0
 If Cbool(objBoolean.item(0).text) Then
 Response.Write "1"
 Else
 Response.Write "0"
 End If 
 Set objBoolean = Nothing
 
 End If
 Set objXmlHttp = Nothing
Else
 Response.Write "-1"
End If
Function validarEmail(sEmail) 
 Dim objER
 validarEmail = False
 Set objER = New RegExp 
 objER.Pattern = "^[\w-\.]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,3}$" 
 objER.IgnoreCase = True
 If Not objER.Test(sEmail) Then
 Set objER = Nothing
 Exit Function 
 End If
 Set objER = Nothing
 validarEmail = True
End Function
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado kra por estar tentando me ajudar... Com relação ao código que você colocou, eu não consegui adaptar à minha necessidade...

 

O problema é que de forma alguma eu poderei utilizar pelo método get, pois exibiria o usuário e senha ...

 

Bom tem aqui um "manual", para consumir o webservice, porém so mostra as variaveis de entrada, o modo do content-type, e content-length que nem sei o que é isso...:

 

http://www.centralconsultas.com.br/WsCosultaService/Service.asmx?op=ConsultaDecodificadorChassi

 

Se você quiser dar uma olhada para ter uma idéia...

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloque

 

Server.URLEncode("seu usuario")
Server.URLEncode("sua senha")

lá na url do post.

 

Uma vez eu estava mechenco com a api do youtube e não estava vingando por causa que eu tinha em codificar os itens que iriam na url, coloquei isso e vingou...

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloque

 

Server.URLEncode("seu usuario")
Server.URLEncode("sua senha")

lá na url do post.

 

Uma vez eu estava mechenco com a api do youtube e não estava vingando por causa que eu tinha em codificar os itens que iriam na url, coloquei isso e vingou...

 

Ééé, daqui a pouco vou ter que tomar um remédio p/ dor de kbça,...

 

Bom, fiz a instrução que você me indicou, porém o erro continuou na mesma linha:

 

error '80004005'

/direciona.asp, line 29

 

Que no código está;

 

If recebeXML.parseError.errorCode <> 0 Then

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.