Ir para conteúdo
  • Cadastre-se

dev botao

Bad Request na Consulta de Cep - ViaCEP


Ver Solução Respondido por Daniel Simoes,
  • Este tópico foi criado há 821 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Prezados

Estou utilizando o componente ACBrCEP com o ViaCep. Ao realizar a consulta de cep pelo endereço, algumas localidades retornam BadRequest, porém ao realizar a consulta pelo navegador tenho sucesso. Mesmo atualizando os fontes, o erro persistiu.

Nas homologações, utilizamos Belo Horizonte  (falhou) e Nova Serrana - MG (sucesso).

URL utilizada para validar Belo Horizonte: https://viacep.com.br/ws/MG/BELO HORIZONTE/CONTORNO/xml

Postado (editado)

Ao forçar lowercase, obtive sucesso realizando a busca pelo endereço de Belo Horizonte.
Segue a procedure alterada.

 

procedure TACBrWSViaCEP.BuscarPorLogradouro(const AMunicipio, ATipo_Logradouro,
    ALogradouro, AUF, ABairro : String);
var
  Municipio, Logradouro, UF: string;
begin
  if AMunicipio = '' then
     raise EACBrCEPException.Create('Munícipio deve ser informado.');

  if ALogradouro = '' then
     raise EACBrCEPException.Create('Logradouro deve ser informado.');

  if AUF = '' then
     raise EACBrCEPException.Create('UF deve ser informado.');

  UF         := LowerCase(TiraAcentos(AUF));
  Municipio  := LowerCase(TiraAcentos(AMunicipio));
  Logradouro := LowerCase(TiraAcentos(ALogradouro));

  fOwner.HTTPGet( fpURL + UF + '/' + Municipio + '/' + Logradouro + '/xml' );
  ProcessaResposta();
end;  

 

Editado por paaraujo
  • Administradores
Postado

Bom dia.

Anexe por favor a unit alterada.

Att.

  • Curtir 1
Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Administradores
Postado

Obrigado pela contribuição, em breve será validada para possível inclusão ao svn

  • Curtir 1
Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • 2 anos depois...
  • Membros Pro
Postado

Boa noite

Estou com este erro também, apenas quando a consulta é por logradouro 

 

Erro HTTP: 400 Bad Request
Socket Error: 0 
URL: http://viacep.com.br/ws/sp/tatui/coronel aureliano/xml

Resposta HTTP:
<html>
<head><title>400 Bad Request</title></head>
<body>
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx/1.22.0</center>
</body>
</html>

Sem título.png

  • Membros Pro
Postado
Em 28/06/2022 at 16:14, Miro Callai disse:

Boa noite

Estou com este erro também, apenas quando a consulta é por logradouro 

 

Erro HTTP: 400 Bad Request
Socket Error: 0 
URL: http://viacep.com.br/ws/sp/tatui/coronel aureliano/xml

Resposta HTTP:
<html>
<head><title>400 Bad Request</title></head>
<body>
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx/1.22.0</center>
</body>
</html>

Sem título.png

Acabei de descobrir o motivo.

Quando se faz a busca por logradouro de determinadas ruas quem tem espaço no meio no viacep, o componente não está colocando o %20 no lugar do espaço

Isso vale pro nome da rua e da cidade tambem.

Enquanto isso não seja tratado no componente .. sugiro colocar um tratamento antes da consulta, substituindo os espaços por %20 ... 

Aqui funcionou perfeitamente.

 

 

  • 1 mês depois ...
  • Este tópico foi criado há 821 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.