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

Função SQL que retorna valor (R$) por extenso