![]() |
Re: Existiert Datei?
mist.. also fileexists funzt definitiv nicht... kann erst später die anderen testen.. der HSV hat in München gewonnen und das kann ich mir in der Sportschau nich entgehen lassen...
|
Re: Existiert Datei?
FileExists kann gar nicht funktionieren weil FileExists intern ein FindFirst macht und das arbeitet nunmal nicht auf HTTP-Basis. Wäre ja auch schlimm wenn jeder den inhalt auflisten könnte der auf meinem webspace liegt.
|
Re: Existiert Datei?
So dieser Code aus dem anderen thread von marabu funktioniert perfekt.
Delphi-Quellcode:
nurnoch eine kleine Frage: Welche Werte kann Request.RespondCode annehmen und wofür stehen die
function UrlCheck(sUrl: String; bAllowRedirects: Boolean = false): Integer;
begin with TidHTTP.Create(nil) do try try HandleRedirects := bAllowRedirects; Head(sUrl); Result := Response.ResponseCode; finally Free; end; except Result := GetLastError; end; end; begin if UrlCheck('http://www.delphipraxis.net', true) = 200 then ShowMessage('!') else ShowMessage('?'); end; THX schonmal an alle |
Re: Existiert Datei?
Response-Code kann alle Fehlercodes haben die es eben gibt. 404 wenn die Seite nicht gefunden wird und etliche andere wenn zum Beispiel der Zugriff verweigert wird. Das alles ist für das HTTP-Protokoll definiert. Du müsstest also mal eine Liste der Fehlercodes des HTTP-Protokolls suchen.
Hier mal eine Seite mit einem Link zum Protokoll welches nochmehr fehlercodes enthält: ![]() |
Re: Existiert Datei?
cool danke :thumb:
|
AW: Existiert Datei?
Aufgrund einiger Problemchen hier nocheine Variante:
Delphi-Quellcode:
uses
IdHeaderList, IdHTTP; type TCheckHeadersAvailable = class class procedure Check(Sender: TObject; AHeaders: TIdHeaderList; var VContinue: Boolean); end; class procedure TCheckHeadersAvailable.Check(Sender: TObject; AHeaders: TIdHeaderList; var VContinue: Boolean); begin VContinue := False; end; function UrlCheck(sUrl: String; bAllowRedirects: Boolean = false): Integer; begin with TIdHTTP.Create(nil) do try HandleRedirects := bAllowRedirects; OnHeadersAvailable := TCheckHeadersAvailable.Check; try Head(sUrl); Result := Response.ResponseCode; except if (Response.ResponseCode >= 400) and (Response.ResponseCode < 600) then Result := Response.ResponseCode else Result := 503; end; finally Free; end; end;
Delphi-Quellcode:
oder
procedure TForm5.Button1Click(Sender: TObject);
var C: Integer; begin C := UrlCheck('http://www.google.de/mdklsandksj.txt', True); if C = 200 then ShowMessage('OK') else ShowMessage(Format('Fehler %d', [C])); end;
Delphi-Quellcode:
procedure TForm5.Button1Click(Sender: TObject);
begin if UrlCheck('http://www.google.de/mdklsandksj.txt', True) = 200 then ShowMessage('OK') else ShowMessage('Fehler'); end; Ach ja, GetLastError (siehe Post 13) als Result ist keine gute Idee. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz