Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Existiert Datei? (https://www.delphipraxis.net/64518-existiert-datei.html)

Angel4585 4. Mär 2006 16:41

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...

SirThornberry 4. Mär 2006 17:00

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.

Angel4585 4. Mär 2006 18:56

Re: Existiert Datei?
 
So dieser Code aus dem anderen thread von marabu funktioniert perfekt.
Delphi-Quellcode:
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;
nurnoch eine kleine Frage: Welche Werte kann Request.RespondCode annehmen und wofür stehen die

THX schonmal an alle

SirThornberry 4. Mär 2006 18:59

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: http://www.webmeister.ch/server/error_code.htm

Angel4585 4. Mär 2006 19:11

Re: Existiert Datei?
 
cool danke :thumb:

himitsu 25. Aug 2010 17:17

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:
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;
oder
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 04:28 Uhr.
Seite 2 von 2     12   

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