Dein "Trick", um den download mehrfach zu versuchen ist nicht 100% sauber.
Die
Exception ist noch nicht korrekt behandelt und schon gehst du rekursiv in die nächste Runde.
Deshalb:
Delphi-Quellcode:
function GetPage(
const AURL:
string) :
string;
var ACount: integer;
begin
if not Assigned(Server)
then
CreateHTTPClient;
for ACount := 1
to MaxTries
do
begin
try
Server.Disconnect;
// Vor der Anfrage pauschal immer Trennen,
// damit Verbindung immer neu erstellt wird
result := Server.Get(AURL);
Exit;
// wir sind fertig !!
except
on E:
Exception do
begin
WriteLog('
#EXCEPT(GetPage('+AURL+'
, '+IntToStr(ACount)+'
): '+E.ClassName+'
-'+E.
Message);
end;
end;
Delay(4000);
// Pause
end;
Result := '
unable to load: '+AURL;
WriteLog(Result);
end;
Der Klassenname der
Exception wird mitgeloggt, denn dieser ist für die Fehlersuche durchaus interessant.