Olá 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: 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>

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."; }

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
[twitter-follow screen_name=’eduardorizo’ show_count=’yes’]
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,
Boa noite, tudo bom?
Não tenho nenhum exemplo pronto sobre isso, mas vou escrever um post sobre o assunto.
Creio que amanhã ou depois já estará disponível no meu blog.
Abraços,
Eduardo H. Rizo
Boa tarde Thiago, veja um exemplo do que você me perguntou no post Como obter sua posição geográfica via C#.
Abraços,
Eduardo H. Rizo
Boa Tarde Eduardo,
Cara.. Muito obrigado meeeeeesmo 🙂
Era exatamente o que eu precisava.
Abraços.. Vlw
Que bom. abraços!
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.
Bom dia, tudo bom?
Aparentemente o endereço do webservice mudou. Tente esse https://apps.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl
Abraços,
Eduardo H. Rizo
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?
Boa tarde, tudo bom?
Parece que eles trocaram o webservice para outro endereço.
Utilize esse agora: https://apps.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl
[]s
Eduardo H. Rizo
Sim, eles trocaram e junto com ele alguns argumentos. Como o AtendeClienteClient. Nao existe esse argumento mais, ou seja nao consigo referenciá-lo. O unico que aparece pra mim é o AtendeClienteService
Hum… e vc tentou usá-lo?
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
Muito bom, mas amigo, me explica o motivo de tu ter atribuído o conteúdo do webservice numa var chamado dados e depois pegar esses dados e atribuir a uma string, por que tu não usou o do próprio dados?
Olá Vitor, na verdade eu não atribui a uma string, mas sim usei o string.format para me ajudar na hora da exibição dos dados.
Repare que no final do string.format eu uso o “dados” para poder ter acesso ao conteúdo.
Abraços,
Eduardo H. Rizo
Boa tarde,
Estou utilizando este modulo para geração de etiquetas, porem mesmo com dados certos, recebo uma exceção na autenticação. Informa que a autenticação falhou.
Você já utilizou esse serviço?
Obrigado
Olá Patrick, tudo bom?
Esse webservice disponibiliza gratuitamente apenas o método consultaCEP, sendo que para usar os demais é necessário ser cliente dos Correios.
Você está usando o método consultaCEP ou outro?
At.,
Eduardo H. Rizo
Olá ehrizo,
Sou cliente dos correios e pretendo utilizar o serviço para gerar etiquetas para meus produtos.
Utilizo o serviço AtendeClienteClient(), mas ao tentar acessar metodos que precisam de autenticação como getStatusCartaoPostagem(), buscaCliente() e verificaDisponibilidadeServico() recebo o erro “”A autenticacao de xxxxxxxx falhou!””
Já utilizou algum deles?
Abraço
Desculpe, nunca usei nenhum desses.
Vocês já tentou o suporte dos correios?
Abraços,
Eduardo H. Rizo
Para deixar claro! Os serviço é fornecido pelo Correio e precisa de um contrato que fornece usuário e senha para acesso. Segue DOCUMENTAÇÃO: http://www.corporativo.correios.com.br/encomendas/sigepweb/doc/Manual_de_Implementacao_do_Web_Service_SIGEPWEB_Logistica_Reversa.pdf
Certo, mas como eu poderia lhe ajudar?
[]s
Eduardo H. Rizo
Estou tentando uma implementação em php via simplexml_load_file. Neste caso, é necessário passar variáveis na url. Estou fazendo assim:
function encontraCep() {
$cep = $_POST[“txtCep”];
$url = “https://apps.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl&txtCep=”.$cep;
$xml = simplexml_load_file($url);
return $xml;
}
dados = encontraCep();
um
print “”;
print_r($dados);
print “”;
Me retorna:
SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => AtendeClienteService
[targetNamespace] => http://cliente.bean.master.sigep.bsb.correios.com.br/
)
)
Onde estou errando?
Olá, tudo bom?
Me desculpe, mas nunca consumi webservices com PHP. Vou ficar devendo.
[]s
Eduardo H. Rizo
Entendo. Mas na sua procidure btnBuscarEndereco_Click, onde você faz menção da url https://apps.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl
Seria em TesteWS.aspx??
Olá Carlos, como vai?
Em ASP.NET eu criei uma referência ao serviço do WebService (via Visual Studio). Essa referência se dá pela menção ao objeto wsCorreio.
Ok?
Bom dia,
Estou recebendo este erro: “Não foi possível estabelecer uma relação de confiança para o canal protegido SSL/TLS com a autoridade ‘apphom.correios.com.br’.” ao tentar realizar a comunicação.
Poderia me auxiliar na configuração para a comunicação?
Olá Patrick, tudo bom?
Coloque o trecho de código para que possamos analisar.
[]s
Eduardo H. Rizo
Como adiciono o endereço ( link) no web.config?
Obrigado.
Olá, tudo bom?
No projeto, clique com o botão direito em References e selecione a opção “Add Service Reference…”.
[]s
Eduardo H. Rizo
Alguém sabe informar se esta URL foi alterada? No módulo FK Customers tem esta mesma função mas a requisição não está funcionando. Ao colar a URL no navegador aparece a resposta: This XML file does not appear to have any style information associated with it. The document tree is shown below.
Bom dia!
Fiz um teste e aparentemente está OK.
Tem alguma consulta por endereço ?
Os correios oferecem uma vasta gama de opções de uso do seu webservices, no entanto, o único gratuito é o de consultar o CEP.
Abraços,
Eduardo H. Rizo
Ehrizo,
Vocâ já consumiu esse webservice para CEP com sucesso?
Ou isso foi PURAMENTE teórico?
Me parece que você NÃO leu atentamente a documentação!
Olá, tudo bem Murilo?
Eu escrevi esse post já faz algum tempo. Fiz um teste hoje, só para conferência, e o webservices continua funcionando adequadamente. Você enfrentou alguma dificuldade?
Sobre a documentação, qual parte você considera que não foi lida atentamente? Poderia esclarecer?
Abraços