PROBLEMA PARA CONSUMIR API DE CEP

 Tópico anterior Próximo tópico Novo tópico

PROBLEMA PARA CONSUMIR API DE CEP

C#

 Compartilhe  Compartilhe  Compartilhe
#498955 - 05/01/2022 11:56:55

ALVAROVB2009
GUARULHOS
Cadast. em:Maio/2009


Pessoal bom dia, estou querendo colocar uma consulta de cep no meu projeto e nas pesquisas que fiz achei como se pega a consulta viacep , eu ja tenho ela em VB6 e funciona perfeitamente, porém quando estou tentando fazer ela via RestSharp ou por módulo esta dando a mensagem de erro quando o sistema tenta trazer a informação

Montei uma classe para fazer a busca e o trecho onde para é esse
       public string Buscar(string Cep)
        {
            RestClient restClient = new RestClient(string.Format('https://viacep.com.br/ws/{0}/json/',Cep));
            RestRequest restRequest = new RestRequest(Method.GET);

           IRestResponse restResponse = restClient.Execute(restRequest);     <- para nessa linha com a seguinte mensagem de erro - A solicitação foi anulada: Não foi possível criar um canal seguro para SSL/TLS.

            if (restResponse.ContentLength <= -1 || restResponse.StatusCode == System.Net.HttpStatusCode.BadRequest)
            {
                return 'Houve um problema com a sua requisição ' + restResponse.Content ;
            }

Alguém já passou por isso, talvez seja alguma configuração do Visual Studio , pois no vídeo que achei explicando essa conexão, não tem nenhum tipo de informação sobre isso ou qualquer erro.
Tentei executar em outra máquina e deu o mesmo problema, no momento estou rodando o sistema no Visual Studio 2019 e o teste que fiz em outra máquina foi no 2015

Desde já agradeço a todos

Teoria quando se sabe tudo, e nada funciona. Prtica e quando tudo funciona e ningum sabe porque.
[]Aquele que quer aprender gosta que lhe digam quando esta errado;
s o tolo no gosta de ser corrigido -[]Prov.12:1


Resposta escolhida #498956 - 05/01/2022 14:50:32

LUIZCOMINO
SAO PAULO
Cadast. em:Maio/2009


Boa Tarde,
Faça um teste com os 4 protocolos

// ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
//ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
//ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11;
//ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;


  public string Buscar(string Cep)
        {
           ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;

            RestClient restClient = new RestClient(string.Format('https://viacep.com.br/ws/{0}/json/',Cep));
            RestRequest restRequest = new RestRequest(Method.GET);

           IRestResponse restResponse = restClient.Execute(restRequest);     <- para nessa linha com a seguinte mensagem de erro - A solicitação foi anulada: Não foi possível criar um canal seguro para SSL/TLS.

            if (restResponse.ContentLength <= -1 || restResponse.StatusCode == System.Net.HttpStatusCode.BadRequest)
            {
                return 'Houve um problema com a sua requisição ' + restResponse.Content ;
            }


[]E conhecereis a verdade, e a verdade vos libertar. Joo 8:32[]


#498958 - 05/01/2022 15:57:43

ALVAROVB2009
GUARULHOS
Cadast. em:Maio/2009


Luiz Obrigado pelo retorno

Apenas a conexão ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 que deu uma mensagem diferente
A conexão subjacente estava fechada: A conexão foi fechada de modo inesperado.

No mais todas ficaram com o erro de tls/ssl, tem alguma forma de abrir essa conexão subjacente, eu apenas substitui a linha inicial com esses protocolos

Reparei que essa conexão demorou quase 1 segundo para dar o erro, as demais foi sempre instantânea

Teoria quando se sabe tudo, e nada funciona. Prtica e quando tudo funciona e ningum sabe porque.
[]Aquele que quer aprender gosta que lhe digam quando esta errado;
s o tolo no gosta de ser corrigido -[]Prov.12:1


#498961 - 05/01/2022 16:05:30

LUIZCOMINO
SAO PAULO
Cadast. em:Maio/2009


Já tive esse erro uma vez:
'A conexão subjacente estava fechada: A conexão foi fechada de modo inesperado.'

Eu utilizava uma máquina com windows 7, para resolver o problema procurei em vários locais e a única coisa que resolveu foi atualizar o windows e voltou a funcionar.

[]E conhecereis a verdade, e a verdade vos libertar. Joo 8:32[]


#498962 - 05/01/2022 16:30:59

ALVAROVB2009
GUARULHOS
Cadast. em:Maio/2009


Lascou então, o Windows da minha máquina de desenvolvimento que esta com o Visual 2019 é Win 10 e o que eu testei em outra máquina é win 7 com Visual 2015


Más darei uma olhada, porque agora consegui rodar um outro projeto que peguei ontem com a linha de comando que vc me passou e nessa máquina eu instalei o system.net.requests para poder rodar o comando que peguei ontem e que agora rodou com a linha ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12

Apesar de ter instalado agora esse mesmo pacote, o projeto na máquina de desenvolvimento ainda não deu certo, más irei testar lá esse outro projeto

Más ja ajudou pacas

Teoria quando se sabe tudo, e nada funciona. Prtica e quando tudo funciona e ningum sabe porque.
[]Aquele que quer aprender gosta que lhe digam quando esta errado;
s o tolo no gosta de ser corrigido -[]Prov.12:1


#498964 - 05/01/2022 17:00:54

ALVAROVB2009
GUARULHOS
Cadast. em:Maio/2009


Consegui fazer rodar o outro projeto, ele utiliza regex para ler o objeto que esta retornando

Más rodei somente após colocar a linha ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 e só com esse funcionou, com os outros protocolos nada, só achei estranho demorar bastante a consulta
Uma primeira consulta demorou cerca de uns 15 seg agora a segunda quase 1 min

Teoria quando se sabe tudo, e nada funciona. Prtica e quando tudo funciona e ningum sabe porque.
[]Aquele que quer aprender gosta que lhe digam quando esta errado;
s o tolo no gosta de ser corrigido -[]Prov.12:1


#498965 - 05/01/2022 17:57:29

LUIZCOMINO
SAO PAULO
Cadast. em:Maio/2009


Não entendi se deu certo no projeto que você queria, mas se você conseguir atualiza o Windows 7.
Valeu!

[]E conhecereis a verdade, e a verdade vos libertar. Joo 8:32[]


#498966 - 05/01/2022 18:17:50

ALVAROVB2009
GUARULHOS
Cadast. em:Maio/2009


No projeto que eu queria não, e onde esta rodando o projeto que eu queria esta com o Win 10 e o Visual Studio 2019

A alteração que vc me passou rodou em um segundo projeto e nesse rodou na máquina com o Win 7 e ai passei para a máquina que está com o Win 10 e funcionou legal

Teoria quando se sabe tudo, e nada funciona. Prtica e quando tudo funciona e ningum sabe porque.
[]Aquele que quer aprender gosta que lhe digam quando esta errado;
s o tolo no gosta de ser corrigido -[]Prov.12:1


#498967 - 05/01/2022 18:44:54

FABRICIOWEB
BELO HORIZONTE
Cadast. em:Novembro/2011


porque nao consultar direto no correios ate porque o via cep nem sempre atualiza rapido.

using (var ws = new correiosservice.AtendeClienteClient())
                    {
                        try
                        {
                            var endereco = ws.consultaCEP(txt_MNCD.Text.Trim());
                            comboBox1.Text = endereco.uf;
                            textBox7.Text = endereco.cidade;
                            textBox5.Text = endereco.bairro;
                            textBox4.Text = endereco.end;
                            label19.Text = 'sucesso';
                        }
                        catch (Exception ex)
                        {
                            frmaviso = new frmaviso(ex.Message.ToString());
                            frmaviso.Visible = true;
                        }
                    }



#498968 - 05/01/2022 19:24:24

ALVAROVB2009
GUARULHOS
Cadast. em:Maio/2009


Fabricio obrigado pelo retorno

O ViaCep é uma consulta gratuita e rápida também, eu uso ela no VB6 e nunca tive problema com lentidão ou acesso como estou tendo agora com o C#



Teoria quando se sabe tudo, e nada funciona. Prtica e quando tudo funciona e ningum sabe porque.
[]Aquele que quer aprender gosta que lhe digam quando esta errado;
s o tolo no gosta de ser corrigido -[]Prov.12:1


#498969 - 05/01/2022 19:57:10

FABRICIOWEB
BELO HORIZONTE
Cadast. em:Novembro/2011


Citação:
:
Fabricio obrigado pelo retorno

O ViaCep é uma consulta gratuita e rápida também, eu uso ela no VB6 e nunca tive problema com lentidão ou acesso como estou tendo agora com o C#


a questao de velocidade que falei é sobre os sites se atualizarem exemplo uma cidade de um cliente era cep unico e eu usava o republica para consulta e nao achava nenhum cep do cliente que virou cep por rua por isso mudei para o serviços do correios



 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por ALVAROVB2009 em 06/01/2022 12:10:31