Rodrigo Ewald Postado 10 Março Postado 10 Março (editado) Estou utilizando a consulta viacep e ela funciona certo período do dia e de repente começa a dar o erro abaixo: Erro HTTP: 500 Socket Error: 10091 error:140A90C4:lib(20):func(169):reason(196) URL: https://viacep.com.br/ws/89035360/json Resposta HTTP: O endereço apontado na URL funciona, já atualizei as DLL do openssl. Reiniciando a aplicação volta a funcionar algumas horas, depois começa a dar o mesmo erro HTTP 500 novamente. Alguém sabe o que pode ser ? Editado 10 Março por Rodrigo Ewald Adicionei informações
Moderadores Juliomar Marchetti Postado 10 Março Moderadores Postado 10 Março Não sei se te conta nele ou é a gratuita. mas lembro que tem limites de consultas. será que não é isso Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Rodrigo Ewald Postado 10 Março Autor Postado 10 Março Olá, não encontrei nada sobre limite no viacep, e testando o endereço no navegador https://viacep.com.br/ws/89035360/json sempre funciona.
Moderadores Juliomar Marchetti Postado 10 Março Moderadores Postado 10 Março 2 horas atrás, Rodrigo Ewald disse: Olá, não encontrei nada sobre limite no viacep, e testando o endereço no navegador https://viacep.com.br/ws/89035360/json sempre funciona. Como está usando o ACBrCEP em sua aplicação? o que pode estar ocorrendo é criando varias instâncias do componente Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Rodrigo Ewald Postado 11 Março Autor Postado 11 Março 1 hora atrás, Juliomar Marchetti disse: Como está usando o ACBrCEP em sua aplicação? o que pode estar ocorrendo é criando varias instâncias do componente Tenho o componente no formulário, uma procedure que chama "ACBrCEP1.BuscarPorCEP()", e uma procedure que executa no evento OnBuscaEfetuada, apenas isso, não faço nada no create ou destroy do formulário.
Moderadores Juliomar Marchetti Postado 11 Março Moderadores Postado 11 Março Tente fazer o seguinte, usar interface pra trabalhar . sugestão é claro unit CEPInterface; interface uses ACBrCEP, SysUtils, Classes; type // Interface para encapsular TEndereco IEndereco = interface ['{59E04EAB-9B4F-4F3E-A52B-AD8AB3422193}'] function GetLogradouro: string; function GetBairro: string; function GetMunicipio: string; function GetUF: string; property Logradouro: string read GetLogradouro; property Bairro: string read GetBairro; property Municipio: string read GetMunicipio; property UF: string read GetUF; end; // Implementação da interface IEndereco TEnderecoWrapper = class(TInterfacedObject, IEndereco) private FEndereco: TEndereco; public constructor Create(AEndereco: TEndereco); function GetLogradouro: string; function GetBairro: string; function GetMunicipio: string; function GetUF: string; end; // Interface para consulta de CEP IConsultaCEP = interface ['{6EC7376C-9D40-4113-9FFD-775A1C3D819A}'] function Consultar(const CEP: string): IEndereco; end; // Implementação da interface de consulta TConsultaCEP = class(TInterfacedObject, IConsultaCEP) private FACBrCEP: TACBrCEP; public constructor Create; destructor Destroy; override; function Consultar(const CEP: string): IEndereco; end; implementation { TEnderecoWrapper } constructor TEnderecoWrapper.Create(AEndereco: TEndereco); begin FEndereco := AEndereco; end; function TEnderecoWrapper.GetLogradouro: string; begin Result := FEndereco.Logradouro; end; function TEnderecoWrapper.GetBairro: string; begin Result := FEndereco.Bairro; end; function TEnderecoWrapper.GetMunicipio: string; begin Result := FEndereco.Municipio; end; function TEnderecoWrapper.GetUF: string; begin Result := FEndereco.UF; end; { TConsultaCEP } constructor TConsultaCEP.Create; begin FACBrCEP := TACBrCEP.Create(nil); FACBrCEP.WebService := wsCorreios; // Configuração do WebService desejado end; destructor TConsultaCEP.Destroy; begin FACBrCEP.Free; inherited; end; function TConsultaCEP.Consultar(const CEP: string): IEndereco; begin FACBrCEP.BuscarPorCEP(CEP); // Realiza a consulta pelo CEP if FACBrCEP.Enderecos.Count > 0 then // Retorna um wrapper para o primeiro endereço encontrado Result := TEnderecoWrapper.Create(FACBrCEP.Enderecos[0]) else raise Exception.CreateFmt('CEP %s não encontrado.', [CEP]); end; end. e use assim uses CEPInterface; // Unit com a interface e implementação var ConsultaCEP: IConsultaCEP; Endereco: IEndereco; begin // Criando a implementação ConsultaCEP := TConsultaCEP.Create; // Consultando um CEP Writeln('Consultando o CEP 01001-000...'); Endereco := ConsultaCEP.Consultar('01001-000'); // CEP de exemplo // Exibindo os dados retornados Writeln('Logradouro: ', Endereco.Logradouro); Writeln('Bairro: ', Endereco.Bairro); Writeln('Cidade: ', Endereco.Municipio); Writeln('Estado: ', Endereco.UF); não se preocupe em destruir pois ele se encarrega. Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Recommended Posts
Crie uma conta ou entre para comentar
Você precisar ser um membro para fazer um comentário
Criar uma conta
Crie uma nova conta em nossa comunidade. É fácil!
Crie uma nova contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora