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 1, 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.

 





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

Postagens mais visitadas deste blog

Funcão SQL para abreviar nomes

Função em JavaScript para consulta de CEP com retorno em XML ou Json