Consulta Cep asp.net c#
Conteúdo retirado toda na integra do endereço
http://www.andrealveslima.com.br/blog/index.php/2017/09/13/como-consultar-cep-no-net/
Adicionando a referência ao web service dos Correios
A primeira coisa que temos que fazer para consultarmos CEPs com os web services dos Correios é adicionarmos a referência para o web service. Isso é super tranquilo de ser feito. No Visual Studio, clicamos com o botão direito em “References” e escolhemos a opção “Add Service Reference“:

Na janela que se abre, temos que informar a URL do serviço, clicar em “Go“, dar um nome para o serviço (no caso eu escolhi o nome “WSCorreios“) e clicar em “OK” para gerar as classes de acesso. A URL do web service que implementa a consulta de CEPs dos Correios é a seguinte:
https://apps.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl

Consultando CEPs
Para demonstrar a consulta de CEPs, desenhei uma tela bem simples com os campos relacionados ao endereço:

A chamada para o web service é muito tranquila a partir do Visual Studio. Nós só temos que instanciar o serviço (o qual nós adicionamos a referência no passo anterior) e chamar o método desejado (nesse caso, “consultaCEP“). O método de consulta de CEPs só recebe um parâmetro, que é o próprio CEP no formato em string. O retorno do método será uma instância da classe de endereço dos Correios, que conterá todas as informações do endereço consultado (bairro, cidade, etc).
Veja como é que fica o código do clique do botão:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
// C#private void btBuscar_Click(object sender, EventArgs e){ using (var ws = new WSCorreios.AtendeClienteClient()) { var resultado = ws.consultaCEP(tbCEP.Text); tbEndereco.Text = resultado.end; tbComplemento.Text = resultado.complemento; tbComplemento2.Text = resultado.complemento2; tbCidade.Text = resultado.cidade; tbBairro.Text = resultado.bairro; tbEstado.Text = resultado.uf; }} |
|
1
2
3
4
5
6
7
8
9
10
11
12
|
' VB.NETPrivate Sub BtBuscar_Click(sender As Object, e As EventArgs) Handles BtBuscar.Click Using WS = New WSCorreios.AtendeClienteClient() Dim Resultado = WS.consultaCEP(TbCEP.Text) TbEndereco.Text = Resultado.[end] TbComplemento.Text = Resultado.complemento TbComplemento2.Text = Resultado.complemento2 TbCidade.Text = Resultado.cidade TbBairro.Text = Resultado.bairro TbEstado.Text = Resultado.uf End UsingEnd Sub |

Tratando possíveis erros
Se tentarmos passar algum conteúdo inválido para o web service, ele não retornará um erro, mas sim, lançará uma exceção. Dessa forma, para tratarmos os erros retornados pelos serviços dos Correios, temos que colocar o nosso código em um bloco “try/catch“:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
// C#private void btBuscar_Click(object sender, EventArgs e){ using (var ws = new WSCorreios.AtendeClienteClient()) { try { var resultado = ws.consultaCEP(tbCEP.Text); tbEndereco.Text = resultado.end; tbComplemento.Text = resultado.complemento; tbComplemento2.Text = resultado.complemento2; tbCidade.Text = resultado.cidade; tbBairro.Text = resultado.bairro; tbEstado.Text = resultado.uf; } catch (Exception ex) { MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } }} |
