Http.Get criando memory leacs
Bom dia galera, eu estou com uma dúvida que algum tempo já vem me tirando do sério.
Eu implementei um método que faz o download de um arquivo utilizando o Http.Get, até aí tudo bem, mas quando o servidor está indisponível, mas minha internet está funcionando, o processo fica travado no get, não passa dele, e como eu utilizo o get em uma thread, ao encerrar o programa, memoryleacs são geradas referente à thread anônima que ficou rodando por conta do get.
Gostaria de saber como resolver esse problema de não passar do Get quando o servidor está indisponível?
Eu implementei um método que faz o download de um arquivo utilizando o Http.Get, até aí tudo bem, mas quando o servidor está indisponível, mas minha internet está funcionando, o processo fica travado no get, não passa dele, e como eu utilizo o get em uma thread, ao encerrar o programa, memoryleacs são geradas referente à thread anônima que ficou rodando por conta do get.
Gostaria de saber como resolver esse problema de não passar do Get quando o servidor está indisponível?
Adhemar Alves
Curtidas 0
Respostas
Mateus Ribeiro
30/03/2016
Bom dia! Vc pode fazer um PING no servidor para testar se está disponível ou não, antes do comando Get!
GOSTEI 0
Adhemar Alves
30/03/2016
Bom dia! Vc pode fazer um PING no servidor para testar se está disponível ou não, antes do comando Get!
Amigo, tem como fazer ping sendo que meu servidor tem login e senha?
GOSTEI 0
Adhemar Alves
30/03/2016
Bom dia! Vc pode fazer um PING no servidor para testar se está disponível ou não, antes do comando Get!
Amigo, tem como fazer ping sendo que meu servidor tem login e senha?
GOSTEI 0
Mateus Ribeiro
30/03/2016
Boa tarde! Eu encontrei uma função que testa servidor que possui usuário e senha. Eu não testei se funciona!
function CanConnect(const aUserName, aPassword, aHost: String; out aErrm: string): boolean; var LocalIDFTP: TIdFTP; begin aErrm := ''; LocalIDFTP := TIdFTP.Create(nil); try LocalIDFTP.UserName := aUserName; LocalIDFTP.Password := aPassword; LocalIDFTP.Host := aHost; LocalIDFTP.Passive := True; try LocalIDFTP.Connect; LocalIDFTP.Quit; result := true; except on E: Exception do begin aErrm := 'Unable to connect to FTP site: ' + E.Message; Result := FALSE; end; end; finally if Assigned(LocalIDFTP) then LocalIDFTP.Free else Result := FALSE; end; end;
GOSTEI 0