CEP LIVRE - CONSULTA URL GRÁTIS COM RETORNO EM XML
Nesse artigo vou demonstrar em um pequeno exemplo de um aplicativo em VB.NET Express 2005, a consulta de um CEP em uma base de dados “Livre” através de uma URL e o tratamento do Retorno dessa consulta 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 <sucesso>1</sucesso>, temos o número 1(um), que significa que obtivemos sucesso na consulta e temos o endereço completo a partir de um CEP consultado, se esse valor for 0(zero), significa que o CEP digitado e consulta na base ainda não está cadastro.
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.

01 Imports System.Xml
02
03 Public Class CepLivre
04 Dim strOut As String 'Variável para receber o Response da Web
05 Dim web As New DownloadURL() 'Objeto que executa a URL da Web
06 Dim txturl As String 'Variável que armazena o endereço URL
07 Dim arquivoxml As XmlTextReader 'Objeto para navegar no arquivo XML
08 Dim itemsucesso As String 'Variável para Validar se Existe Cep
09 Private Sub btnCep_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCep.Click
10 Dim caminho As String 'Caminho do Arquivo XML
11 Dim Arquivo As String 'Nome do Arquivo XML
12 Dim fluxoTexto As IO.StreamWriter 'Objeto para Gravar no Arquivo XML o Response strOUT
13
14 'URL para Consulta do Cep
15 txturl = "http://ceplivre.pc2consultoria.com/index.php?module=cep&cep=" & txtCep.Text & "&formato=xml"
16 MessageBox.Show(txturl)
17 web.defineURL(txturl) 'Passando a URL para o Método
18 web.downloadURL(strOut) 'Recebendo a Resposta XML do Método
19 MessageBox.Show(strOut)
20
21 'Criando o Arquivo XML
22
23 Arquivo = "ceplivre.xml" 'Nome do Arquivo XML
24 fluxoTexto = New IO.StreamWriter(Arquivo) 'Objeto para Gravação do conteúdo XML
25 fluxoTexto.Write(strOut) 'Gravando "Write" o response strOut no Arquivo XML
26 fluxoTexto.Close() 'Fechando o Arquivo
27
28 arquivoxml = New XmlTextReader("ceplivre.xml") 'Instanciando o Objeto XML com o response do Site
29 arquivoxml.ReadStartElement("ceplivre") 'Parando na TAG principal do Arquivo XML
30 Do While arquivoxml.Read() 'Loop para passar por todas as Tags do arquivo XML
31 If arquivoxml.Name = "sucesso" Then 'Entrando na Tag sucesso
32 itemsucesso = arquivoxml.ReadString
33 If itemsucesso = "0" Then 'Se a Tag sucesso for 0"zero" não existe CEP
34 MessageBox.Show("Cep não Encontrado !!!")
35 arquivoxml.Close()
36 Exit Do
37 End If
38 Else
39 If arquivoxml.Name = "tipo_logradouro" Then
40 txtEndereco.Text = arquivoxml.ReadString
41 ElseIf arquivoxml.Name = "logradouro" Then
42 txtEndereco.Text = txtEndereco.Text & " " & arquivoxml.ReadString
43 ElseIf arquivoxml.Name = "bairro" Then
44 txtBairro.Text = arquivoxml.ReadString
45 ElseIf arquivoxml.Name = "cidade" Then
46 txtCidade.Text = arquivoxml.ReadString
47 ElseIf arquivoxml.Name = "estado_sigla" Then
48 cmbEstado.Text = arquivoxml.ReadString
49 End If
50 End If
51 Loop
52 arquivoxml.Close()
53 End Sub
54 End Class
Quero registrar meu agradecimento e parabenizar a Consultoria PC2 e também agradecer ao José Carlos Macoretti pela Classe DownloadURL.
Para quem quiser contribuir com o CEPLivre e acrescentar seu endereço a base de dados, acesse a URL abaixo:
http://ceplivre.pc2consultoria.com/index.php?module=cep&event=formeditacep
Abçs e Obrigado.

Space do autor


1
0
