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


 Hoje veremos como usar um serviço web para localizar CEPs. (O serviço estava funcional no momento da escrita do artigo mas pode ser descontinuado.)

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

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ?

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