Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Indy - Kann eine Verbindung zu URL aufgebaut werden? (https://www.delphipraxis.net/138948-indy-kann-eine-verbindung-zu-url-aufgebaut-werden.html)

LDericher 20. Aug 2009 11:17


Indy - Kann eine Verbindung zu URL aufgebaut werden?
 
Hallo DP!

Ich brauche recht schnell eine Lösung:

Folgendes Problem: Habe die Indy-Komponenten (welche Version? :gruebel: Auf jeden Fall in Delphi 7 :lol:) und lade über ein IdHTTP Dateien von einer URL runter. Funktioniertauch so weit, aber wenn die Dateien (wieso auch immer) mal nicht verfügbar sein sollten, zerstört mein Programm kurzerhand die Originale.
Jetz will ich natürlich abfangen, ob die Daten verfügbar sind--- Arbeite gerade an einem Workaround. Fein wär sowas wie TIdHTTP.IsAvailable(URL:string):boolean, aber das gibts leider nicht.

Kennt wer so was?

Danke,
Euer LDer.

Argh, ihr kommt gleich wieder mit dem hier: :glaskugel:

Zu Recht, Code vergessen: Bitteschön ;)

Delphi-Quellcode:
procedure TUpdateForm.Download(Source, Target: string);
var
  fs:TFileStream;
const
  UpdateURL='http://jmmworks.bplaced.net/*zensiert*';
begin

fs:=TFileStream.Create(ExtractFileDir(Application.ExeName)+'\'+Target, fmCreate or fmShareDenyNone);
  try
    IdDown.Get(UpdateURL+Source, fs);
  except
    on E:EIdHTTPProtocolException
      do Showmessage('HTTP-Fehler: '+IntToStr(E.ReplyErrorCode));
    on E:EIdSocketError
      do Showmessage(E.message);
  end;
fs.Free;
end;

Klaus01 20. Aug 2009 11:33

Re: Indy - Kann eine Verbindung zu URL aufgebaut werden?
 
Hallo,

kennst Du schon URLCheck?

Grüße
Klaus

LDericher 20. Aug 2009 11:44

Re: Indy - Kann eine Verbindung zu URL aufgebaut werden?
 
Nein, kannte ich noch nicht... klingt intereessant, aber ich finde meinen Workaround gelungen (hatte nen Aufruf von TGeistesBlitz.Create(poHirn) :D):

Delphi-Quellcode:
function TUpdateForm.Download(Source, Target: string):boolean;
var
  fs:TFileStream;
const
  UpdateURL='http://jmmworks.bplaced.net/*zensiert*';
begin
Result:=true;
fs:=TFileStream.Create(ExtractFileDir(Application.ExeName)+'\'+Target+'.tmp', fmCreate or fmShareDenyNone);
  try
    IdDown.Get(UpdateURL+Source, fs);
  except
    Result:=false;
  end;
fs.Free;
if(Result)then
  begin
  DeleteFile(ExtractFileDir(Application.ExeName)+'\'+Target);
  RenameFile(ExtractFileDir(Application.ExeName)+'\'+Target+'.tmp', ExtractFileDir(Application.ExeName)+'\'+Target);
  end else DeleteFile(ExtractFileDir(Application.ExeName)+'\'+Target+'.tmp');
end;
So. Hat sich erledigt!

Gruß vom LDer

P.S.: Bei nächster Gelegenheit komm ich auf URLCheck zurück!


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz