예제 #1
0
        private void MostrarCEP()
        {
            try
            {
                if (txtCep.Text != "")
                {
                    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)
                    {
                        MyMessageBox.Show(" O servidor não se encontra disponível", "Servidor indisponível", "OK");
                        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")
                                        {
                                            MyMessageBox.Show("  O CEP inserido não foi localizado. \n Favor inserir novamente um válido.", "CEP não encontrado", "OK");
                                            txtCep.Focus();
                                            return;
                                        }
                                    }

                                    //Logradouro
                                    if (cont == 2)
                                    {
                                        string[] valor = substring.Split(":".ToCharArray());
                                        txtRua.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());
                                        txtCidade.Text = valor[1];
                                    }

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

                                    cont++;
                                }
                            }
                        }
                    }
                }
                else
                {
                    MyMessageBox.Show(" Favor inserir o CEP para o preenchi- \n mento automático.", "CEP vazio", "OK");
                }
            }catch (Exception e)
            {
                MessageBox.Show("Preenchimento automático indisponivel no momento");
            }
        }