VB .NET - Usando um serviço web para localizar CEP


Você já deve ter ouvido a expressão : "Reinventar a roda"

Reinventar a roda é duplicar um método básico que já foi há muito testado e aceitado e considerado comum.

Como um bom desenvolvedor estamos sempre procurando soluções criativas e eficientes mas quando temos algo pronto e que já foi extensivamente testado e que funciona porque não usar ?

Afinal porque reinventar a roda ?

É isso que eu mostro neste artigo : a utilização de uma solução disponível a todos (de domínio público) que funciona e que podemos usar em nossas soluções.

Vou mostrar como usar o web service disponibilizado em http://www.republicavirtual.com.br/cep/ para localizar o cep em uma aplicação VB .NET.

No site citado a cima você encontra como usar o serviço e alguns códigos de exemplos.

Neste artigo vou criar uma aplicação Windows Forms e usar o serviço para localizar informações a partir de um CEP informado.

Vamos precisar do Visual Basic 2010 Express Edition ou Visual Studio 2010 e de uma conexão com a internet.

Abra o Visual Basic .NET 2010 Express Edition e crie um novo projeto do tipo WIndows Forms Application com o nome LocalizarCEP;

A seguir no formulário padrão form1.vb inclua os seguintes controles:

Conforme o leiaute da figura abaixo:

A aplicação é muito simples e funciona assim:

  1. Ao abrir a aplicação o formulário será apresentando com o cursor no campo CEP;
  2. Digitando o CEP e clicando no ícone da lupa iremos acionar o web service;
  3. O web service retornará os dados no formato XML;
  4. Iremos ler o XML retornado e obter as informações exibindo-as nos controles TextBox do formulário;

Para fazer a aplicação funcionar dessa forma vamos incluir o código abaixo no evento Click do controle PictureBox picLocalizar:

   Private Sub picLocalizar_Click(sender As System.Object, e As System.EventArgs) Handles picLocalizar.Click
        Try
            Dim ds As New DataSet()
            Dim xml As String = "http://cep.republicavirtual.com.br/web_cep.php?cep=@cep&formato=xml".Replace("@cep", txtCEP.Text)
            ds.ReadXml(xml)
            txtEndereco.Text = ds.Tables(0).Rows(0)("logradouro").ToString()
            txtBairro.Text = ds.Tables(0).Rows(0)("bairro").ToString()
            txtCidade.Text = ds.Tables(0).Rows(0)("cidade").ToString()
            txtUF.Text = ds.Tables(0).Rows(0)("uf").ToString()
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Erro")
        End Try
    End Sub

 

No código acima criamos um DataSet e a seguir usamos o web service passando as informações no formato exigido:

    Dim ds As New DataSet()
    Dim xml As String = "http://cep.republicavirtual.com.br/web_cep.php?cep=@cep&formato=xml".Replace("@cep", txtCEP.Text)

A seguir lemos o retorno no formato XML e obtemos as informações exibindo-as nos controles TextBox:

    ds.ReadXml(xml)
    txtEndereco.Text = ds.Tables(0).Rows(0)("logradouro").ToString()
    txtBairro.Text = ds.Tables(0).Rows(0)("bairro").ToString()
    txtCidade.Text = ds.Tables(0).Rows(0)("cidade").ToString()
    txtUF.Text = ds.Tables(0).Rows(0)("uf").ToString()

Para limpar os TextBox do formulário temos o código abaixo no evento Click do botão Limpar:

Private Sub btnLimpar_Click(sender As System.Object, e As System.EventArgs) Handles btnLimpar.Click
        LimparTextboxes()
        txtCEP.Focus()
    End Sub

A rotina LimparTextboxes() tem o seguinte código:

Private Sub LimparTextboxes()
        For Each txt As Control In Me.Controls
            If TypeOf txt Is TextBox Then
                txt.Text = ""
            End If
        Next
    End Sub

O código do botão Sair é dado abaixo:

 Private Sub btnSair_Click(sender As System.Object, e As System.EventArgs) Handles btnSair.Click
        Me.Close()
    End Sub

Executando o projeto e informando um CEP iremos obter o seguinte resultado:

Pegue o projeto completo aqui: LocalizarCep.zip

Rom 8:7 Porquanto a inclinação da carne é inimizade contra Deus, pois não é sujeita à lei de Deus, nem em verdade o pode ser;

Rom 8:8 e os que estão na carne não podem agradar a Deus.

Rom 8:9 Vós, porém, não estais na carne, mas no Espírito, se é que o Espírito de Deus habita em vós. Mas, se alguém não tem o Espírito de Cristo, esse tal não é dele.

Referências:


José Carlos Macoratti