Http.Get criando memory leacs

30/03/2016

1

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?
Responder

Posts

30/03/2016

Mateus Ribeiro

Bom dia! Vc pode fazer um PING no servidor para testar se está disponível ou não, antes do comando Get!
Responder

30/03/2016

Adhemar Alves

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?
Responder

30/03/2016

Adhemar Alves

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?
Responder

31/03/2016

Mateus Ribeiro

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;
Responder