Olá pessoal! Após um tempo afastado, volto ao iMasters com um artigo que (tomara) será muito valioso pra todos. Pois bem. Hoje irei mostrar uma aplicação que desenvolvi para buscar CEP, utilizando a própria infra-estrutura dos Correios.
Para entender melhor o que iremos abordar, primeiro acesse o exemplo on-line, em: http://www.walteram.com.br/artigos/cepbr/
Você verá a página à seguir. Para experimentar, digite seu CEP ou endereço, e clique em “Procurar”.

Sabemos que, em certos projetos, como comércio eletrônico, por exemplo, precisamos de uma forma segura e confiável de descobrir o endereço do cliente. Uma dessas formas é perguntar ao usuário o seu CEP, e já deixar preenchido o seu endereço, bairro e cidade. O usuário só precisará prencher o número da casa onde mora. Neste caso específico, isso irá ajudar a controlar o processo de envio da mercadoria, pois a probabilidade de uma remessa ser devolvida diminui bastante.
A aplicação que desenvolví trata-se de uma DLL (apenas 32kb) com os objetos usados para fazer a busca. Resolví compilar todo o código em uma DLL pois é mais fácil de utilizar. Assim, você conseguirá fazer a busca em poucas linhas de código.
Tudo o que tem de fazer é criar uma pasta chamada “bin”, na raiz de seu site, e copiar a DLL para lá. Não precisa instalar nada no servidor. Apenas precisará do .Net Framework 2.0.
Então, pra começar, faça o download da DLL e dos exemplos.
Copie a pasta bin para a raiz de seu site.
Crie uma nova página em seu site, e digite o código abaixo. Lembre-se de salvar com a extensão .aspx. O código abaixo encontra-se disponível para download junto com a DLL.
<%@ Page Language="VB" %>
<script runat="server">
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Try
'Se preferir, rode on-line, em
'http://www.walteram.com.br/artigos/cepbr/exemplo1.aspx
Dim cep As New CEPBR.CEP("27330680")
Response.Write(cep.CEP & "<br>")
Response.Write(cep.Estado & "<br>")
Response.Write(cep.Logradouro & "<br>")
Response.Write(cep.Bairro & "<br>")
Response.Write(cep.Cidade)
Catch erro As ApplicationException
Response.Write(erro.Message)
End Try
End Sub
</script>
O código acima procura o CEP, e mostra os dados encontrados (endereço, bairro, cidade e estado).
Quando você cria o objeto CEPBR.CEP e passa os parâmetros, a busca é feita por trás das cenas.
Caso o CEP não seja localizado, uma exceção é disparada. Através do bloco Try..Catch, podemos obter essa exceção, e tratá-la.
Você então pode usar as propriedades do objeto para exibir os dados encontrados.
Provavelmente agora você vai querer obter o inverso. Isto é, através de um endereço, mostrar o CEP. Veja abaixo o código:
<%@ Page Language="VB" %>
<script runat="server">
‘
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Try
'Se preferir, rode on-line, em
'http://www.walteram.com.br/artigos/cepbr/exemplo2.aspx
Dim cep As New CEPBR.CEP("RJ", "Barra Mansa", _
"Avenida", "Albo Chiesse", "Centro")
Response.Write(cep.CEP & "<br>")
Response.Write(cep.Estado & "<br>")
Response.Write(cep.Logradouro & "<br>")
Response.Write(cep.Bairro & "<br>")
Response.Write(cep.Cidade)
Catch erro As ApplicationException
Response.Write(erro.Message)
End Try
End Sub
</script>
Para este tipo de busca, precisamos passar os seguintes parâmetros:
Estado = RJ, SP, MG, etc
Cidade = São Paulo, Rio de Janeiro, etc
Tipo de logradouro = Rua, Avenida, Travessa, Praça, etc
Nome do Logradouro
Nome do Bairro
Entendeu? O código é bem simples de implementar. Acredito que você não terá dificuldades em utilizá-lo. No entanto, preciso esclarecer algumas coisas:
. A busca é feita diretamente no Web Service gratuito dos Correios. Isso é bom, pois a busca sempre trará resultados atualizados. No entanto, isto também significa que não há como garantir o funcionamento. O site pode sair do ar, o Web Service pode acabar...
. Por isso, use este recurso como adição, e não como única alternativa. Evite depender da busca.
. Sempre trate as exceções.
. A performance da busca também depende do Web Service.
E por hoje é só pessoal.
Espero que o artigo ajude a todos vocês. E, caso tenham alguma dúvida, não hesitem em escrever para mim.
Clique aqui para fazer o download dos arquivos. Um forte abraço a todos! Espero vocês no InterCon!











36 Comentários
Qual a sua opinião?