DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

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.





    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



Publicidade
Autor
Fernando Jacinto Da Silva

Possui Graduação em Ciência da Computação pela Universidade de Marília (1994). Trabalha com Desenvolvimento de Sistemas desde 1999 e Ministra aulas em estabelecimentos de Ensino (Colégio Técnicos) desde 1996. Atualmente é Supervisor e Programador de Sistemas de Informação na Seção de Informática da ...


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
1   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03