CEP LIVRE - CONSULTA URL GRÁTIS COM RETORNO EM XML
Vamos contar com a contribuição de mais duas matérias: 1ª - A base de dados “Livre” de CEPs que faz parte da PC2 Consultoria em Software Livre trata-se da disponibilização, em formato XML, da base de dados de CEPs brasileiros. O CEP Livre funciona on-line, por meio de requisições http, em retorno o sistema devolve um arquivo XML. A URL utilizada é: http://ceplivre.pc2consultoria.com/index.php?module=cep&cep=01311-000&formato=xml Veja o FAQ: http://www.pc2consultoria.com/index.php?option=com_content&task=view&id=298&Itemid=73 2ª - Uma classe pronta com nome de DonwloadURL no Site do José Carlos Macoratti. Onde utilizaremos: O Método CREATE da Classe WebRequest para criar um objeto WebRequest passando a URL como parâmetro; Depois chamar o método GetResponse que retorna uma resposta a uma requisição web. Veja a Classe: http://www.macoratti.net/vbn_dhtp.htm Com essas duas contribuições, podemos partir para o projeto VB.NET que ficará com o seguinte Layout: E agora ao código: A programação está restrita ao botão do Formulário CepLivre. Precisaremos da namespace System.XML que está declarada como Imports logo no começo da aplicação “Linha 01” e as variáveis também declaradas dentro da Class Form CepLivre. Linhas 05, 17 e 18: O objeto web é referente à classe que usamos da contribuição do site do macoratti.net Linhas 06 e 15: A variável txturl estamos utilizando para passar como parâmetro a URL necessária para consulta na base de dados do CEPLivre, que também está na contribuição citada acima. Linhas 11,23-26: Criamos um arquivo XML da resposta vinda do Site CepLivre. Linhas 07, 28, 29, até o final: Para trabalharmos com a resposta do Site CEPLivre usamos o objeto arquivoxml baseado na classe XmlTextReader. Linhas 16 e 19:Depois de digitado o CEP e clicado no Botão veremos duas mensagens demonstrando a chamada da URL e o retorno em XML. Exemplo da execução da Linha 15 utilizando a caixa de Texto txtCep.Text Exemplo efetuado na consulta URL e o retorno em XML utilizando a variável StrOut nas Linhas 04,18,19,25 Nesse ponto utilizamos o retorno da seguinte maneira: Na Tab Navegamos no Loop que começa na Linha 30 até a 51 recuperando o valor de cada Tag do XML e atribuindo os valores nas caixas de texto. |
Imports System.Xml
Public Class CepLivre
'Variável para receber o Response da Web
Dim strOut As String
'Objeto que executa a URL da Web
Dim web As New DownloadURL()
'Variável que armazena o endereço URL
Dim txturl As String
'Objeto para navegar no arquivo XML
Dim arquivoxml As XmlTextReader
'Variável para Validar se Existe Cep
Dim itemsucesso As String
Private Sub btnCep_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCep.Click
'Caminho do Arquivo XML
Dim caminho As String
'Nome do Arquivo XML
Dim Arquivo As String
'Objeto para Gravar no Arquivo XML o Response strOUT
Dim fluxoTexto As IO.StreamWriter
'URL para Consulta do Cep
txturl = "http://ceplivre.pc2consultoria.com/index.php?module=cep&cep="
& txtCep.Text & "&formato=xml"
MessageBox.Show(txturl)
'Passando a URL para o Método
web.defineURL(txturl)
'Recebendo a Resposta XML do Método
web.downloadURL(strOut)
MessageBox.Show(strOut)
'Criando o Arquivo XML
'Nome do Arquivo XML
Arquivo = "ceplivre.xml"
fluxoTexto = New IO.StreamWriter(Arquivo)
'Objeto para Gravação do conteúdo XML
'Gravando "Write" o response strOut no Arquivo XML
fluxoTexto.Write(strOut)
'Fechando o Arquivo
fluxoTexto.Close()
'Instanciando o Objeto XML com o response do Site
arquivoxml = New XmlTextReader("ceplivre.xml")
'Parando na TAG principal do Arquivo XML
arquivoxml.ReadStartElement("ceplivre")
'Loop para passar por todas as Tags do arquivo XML
Do While arquivoxml.Read()
'Entrando na Tag sucesso
If arquivoxml.Name = "sucesso" Then
itemsucesso = arquivoxml.ReadString
'Se a Tag sucesso for 0"zero" não existe CEP
If itemsucesso = "0" Then
MessageBox.Show("Cep não Encontrado !!!")
arquivoxml.Close()
Exit Do
End If
Else
If arquivoxml.Name = "tipo_logradouro" Then
txtEndereco.Text = arquivoxml.ReadString
ElseIf arquivoxml.Name = "logradouro" Then
txtEndereco.Text = txtEndereco.Text & " " &
arquivoxml.ReadString"
ElseIf arquivoxml.Name = "bairro" Then
txtBairro.Text = arquivoxml.ReadString
ElseIf arquivoxml.Name = "cidade" Then
txtCidade.Text = arquivoxml.ReadString
ElseIf arquivoxml.Name = "estado_sigla" Then
cmbEstado.Text = arquivoxml.ReadString
End If
End If
Loop
arquivoxml.Close()
End Sub
End Class
Retirado do site: http://www.devmedia.com.br/articles/viewcomp.asp?comp=12172
Comentários
Postar um comentário
Os códigos postados aqui são uma seqüência de instruções de forma ordenada, não compilada para o código de máquina, em uma determinada linguagem de programação.
Ajude a melhorar esses códigos.