loader image

Busca automática de CEP em C# – Windows Forms

Projeto bem legal usando o service gratuita do Via CEP. O webservice retorna uma saída jSON o que facilita bastante a troca de dados com o servidor.

Aprenda também a utilizar o serviço do VIA CEP em suas páginas web usando jQuery. Aula disponível em https://www.blogson.com.br/busca-por-cep-usando-jquery-e-json/

Veja um exemplo do resultado da pesquisa do CEP da Etec; 12951-231

https://viacep.com.br/ws/12951231/json/
Resultado:

Montando a interface do Projeto de Busca Automática de CEP

A interface ficará desta forma;

Ler jSON em C#

Em projetos C# normalmente utilizá-se da biblioteca jSON.NET para ler valores de uma saída jSON, porém, para este projeto em particular optei por não usá-la haja vista que a saída do web Service do Via CEP segue um único padrão de dados. Portanto, o código do botão Localizar ficou resumido;

IMPORTANTE! para este código foi necessário adicionar o using System.Text.RegularExpressions;

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://viacep.com.br/ws/" + txtCep.Text + "/json/");
request.AllowAutoRedirect = false;
HttpWebResponse ChecaServidor = (HttpWebResponse)request.GetResponse();

if (ChecaServidor.StatusCode != HttpStatusCode.OK)
{
    MessageBox.Show("Servidor indisponível");
    return; // Sai da rotina
}

using (Stream webStream = ChecaServidor.GetResponseStream())
{
    if (webStream != null)
    {
        using (StreamReader responseReader = new StreamReader(webStream))
        {
            string response = responseReader.ReadToEnd();
            response = Regex.Replace(response, "[{},]", string.Empty);
            response = response.Replace("\"", "");

            String[] substrings = response.Split('\n');                        

            int cont = 0;
            foreach (var substring in substrings)
            {
                if (cont == 1)
                {
                    string[] valor = substring.Split(":".ToCharArray());
                    if (valor[0] == "  erro")
                    {
                        MessageBox.Show("CEP não encontrado");
                        txtCep.Focus();
                        return;
                    }
                }

                //Logradouro
                if (cont == 2)
                {
                    string[] valor = substring.Split(":".ToCharArray());
                    txtLogradouro.Text = valor[1];
                }

                //Complemento
                if (cont == 3)
                {
                    string[] valor = substring.Split(":".ToCharArray());
                    txtComplemento.Text = valor[1];
                }

                //Bairro
                if (cont == 4)
                {
                    string[] valor = substring.Split(":".ToCharArray());
                    txtBairro.Text = valor[1];
                }

                //Localidade (Cidade)
                if (cont == 5)
                {
                    string[] valor = substring.Split(":".ToCharArray());
                    txtLocalidade.Text = valor[1];
                }

                //Estado (UF)
                if (cont == 6)
                {
                    string[] valor = substring.Split(":".ToCharArray());
                    txtUF.Text = valor[1];
                }

                cont++;
            }
        }
    }
}

Resultado (Clique na imagem para executar o GIF):

Código da aplicação – Busca Automática por CEP em C#

O download deste projeto simplista está disponível em: aulas-profanderson.azurewebsites.net/ds/WFBuscaCEP.zip

Deixe seu comentário