Correios: Webservice para consulta de endereços a partir de um CEP

correiosOlá pessoal, tudo bom?

O Correio disponibiliza um Webservice gratuito, pelo menos por enquanto, para consulta de endereços a partir de um determinado CEP.

O acesso ao Webservice se dá a partir da URL:  http://sigep.correios.com.br/sigep/update/AtendeClienteService.wsdl ou https://apps.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl

Para demonstrar seu funcionamento, segue um trecho de código de uma aplicação ASP.NET


<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TesteWS.aspx.cs" Inherits="ConsultaCEP.TesteWS" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title></title>
</head>
<body>
  <form id="form1" runat="server">
    <div>
    <h1>Teste WS dos Correios</h1><br />
    <asp:Panel ID="Panel1" runat="server" GroupingText="Busca Endereço">
      CEP:
      <asp:TextBox ID="txtCep" runat="server"></asp:TextBox>&nbsp;<asp:Button ID="btnBuscarEndereco" runat="server" OnClick="btnBuscarEndereco_Click" Text="Buscar Endereço" />
      <br />
      <asp:Label ID="lblEndereco" runat="server"></asp:Label>
    </asp:Panel>
    </div>
  </form>
</body>
</html>

Resultado do código ASP.NET acima.

Resultado do código ASP.NET acima

Na sequencia, temos a implementação em C# para tratar o clique do botão Buscar Endereço


protected void btnBuscarEndereco_Click(object sender, EventArgs e)
{
  wsCorreio.AtendeClienteClient ws = new wsCorreio.AtendeClienteClient("AtendeClientePort"); //Verificar o nome do endpoint no arquivo Web.config
  var dados = ws.consultaCEP(txtCep.Text);
  if (dados != null)
  {
    lblEndereco.Text = string.Format(@"Endereço: {0}<br />
                       Complemento 1: {1}<br />
                       Complemento 2: {2}<br />
                       Bairro: {3}<br />
                       Cidade: {4}<br />
                       Estado: {5}",
                       dados.end,
                       dados.complemento,
                       dados.complemento2,
                       dados.bairro,
                       dados.cidade,
                       dados.uf);
  }
  else
    lblEndereco.Text = "CEP não encontrado.";
}

Dados do endereço de acordo com o CEP informado

Dados do endereço de acordo com o CEP informado

Dado o exemplo, agora basta adaptar para sua aplicação, seja ela ASP.NET, Windows Form, Windows Phone, etc.

Grande abraço,
Eduardo Henrique Rizo

 

Coordenador de Internet da Universidade do Oeste Paulista (Unoeste) e professor universitário de disciplinas relacionadas ao desenvolvimento de sistemas para Web, gerenciamento de servidores, serviços e redes.

Marcado com: , , , , , , , , , , , , , ,
Publicado em ASP.NET, Desenvolvimento Web, Windows Phone
13 comentários em “Correios: Webservice para consulta de endereços a partir de um CEP
  1. Thiago Moises disse:

    Boa tarde,
    Primeiramente, parabens pelo seu trabalho. Estou começando a me aventurar no mundo do WP e estou exclarecendo muitas dúvidas aqui.
    Gostaria de saber se à alguma forma de recupegar a minha localização. Estou desenvolvendo um APP para meu TCC e preciso saber qual a localização do celular, mas não sei como fazer isso.
    Help me kkkkk
    Desde já agradeço.
    Att,

  2. Thiago Moises disse:

    Boa Tarde Eduardo,
    Cara.. Muito obrigado meeeeeesmo 🙂
    Era exatamente o que eu precisava.
    Abraços.. Vlw

  3. Mauricio disse:

    Boa tarde,

    Estou tentando usar esta solução mas quando tento adicionar o service referencia com este endereço retorna o seguinte erro:

    There was an error downloading ‘http://sigep.correios.com.br/sigep/update/AtendeClienteService.wsdl/_vti_bin/ListData.svc/$metadata’.
    The request failed with HTTP status 404: Not Found.

    Sabe o que pode ser?

    Obrigado.

  4. Roberto Junior disse:

    Eduardo, eu estou tentando usar esse webservice aqui mas ele está dando erro nessa linha:

    wsCorreios.AtendeClienteService ws = new wsCorreios.AtendeClienteService(“AtendeClientePort”); //Verificar o nome do endpoint no arquivo Web.config

    tive que trocar o AtendeClienteClient porque no novo link do webservice dos correios essa config nao aparece.
    Fiz errado?

  5. Roberto Junior disse:

    Tentei, e no try catch, ele da o seguinte erro ao digitar um cep invalido

    An exception of type ‘System.Web.Services.Protocols.SoapException’ occurred in System.Web.Services.dll but was not handled in user code

    Additional information: CEP NAO ENCONTRADO

    Ele retorna isso no VS, e não no webform como deveria ser

  6. […] Correios: Webservice para consulta de endereços a partir de um CEP […]

Deixar mensagem para Eduardo H. Rizo Cancelar resposta

Sorocaba e Região
Prestadora de serviços RIZZO GS - Sorocaba/SP

Serviços de limpeza, conservação, recepção, copa, portaria, vigia, zeladoria, jardim, elétrica, hidráulica, pintura, etc.

Contato: (15) 3357-4263 / (15) 3357-4502 - contato@rizzogs.com.br

Website: http://www.rizzogs.com.br