![]() |
Prüfen ob eine URL erreichbar ist (kein Download)
Hallo,
ich möchte ein kleines Tool bauen das eine Liste von Internetlinks auf Erreichbarkeit prüft. Links wie ![]() oder ![]() Gibt es eine Funktion der ich den Link übergebe und diese mir zurückgibt ob das Ziel existiert bzw. erreichbar ist? |
Re: Prüfen ob eine URL erreichbar ist (kein Download)
Statt dem kompletten GET kannst Du eine HEAD Anforderung auf die URL ausführen (Indy Kompos tun dies). Damit wird nur der Header vom Server zurückgeliefert und gemeldet, ob die Seite existiert, vorschoben ist, etc...
...:cat:... |
Re: Prüfen ob eine URL erreichbar ist (kein Download)
Moin wk_one,
schau Dir doch mal die API Funktion InternetOpenUrl an. Vielleicht hilft Dir ja die schon weiter. |
Re: Prüfen ob eine URL erreichbar ist (kein Download)
Zitat:
Habe beschlossen Sakuras Variante zu probieren. ich versuche das ganze mal mit get. Das funktioniert auch solange es die URL gibt. Hier der Code:
Code:
edit1 ist ein eingabefeld in dem die URL steht.
try
IdHTTP1.Get(edit1.text, responseStream); except on EIdHTTPProtocolException do ausgabe:='Fehler!'+#13#10 + IdHTTP1.ResponseText; end;//try Wenn nun eine URL eingegeben wird die es nicht gibt, dann bricht das Programm ab und bringt eine Fehlermeldung. Das soll es aber nicht. In Fehlerfällen soll es eine Meldung in die Variable ausgabe schreiben. Wie schaffe ich es das Fenster mit der Fehlermeldung zu unterdrücken? Irgendwelche Tipps? |
Re: Prüfen ob eine URL erreichbar ist (kein Download)
Warum sagt der bei mir "Undefinierter Bezeichner: 'responseStream'??
Hab neues Projekt gemacht mit IdHTTP1, Edit1 und Button1.In Button1 hab ich deinen Source drin:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin try IdHTTP1.Get(edit1.text, responseStream); except on EIdHTTPProtocolException do ausgabe:='Fehler!'+#13#10 + IdHTTP1.ResponseText; end;//try end; |
Re: Prüfen ob eine URL erreichbar ist (kein Download)
Zitat:
So sieht mein code aus:
Delphi-Quellcode:
edit2 ist ein weiteres Textfeld in dem Pfad+Dateiname angegeben wird
procedure TForm1.Button1Click(Sender: TObject);
var responseStream: TFileStream; ausgabe:String; begin responseStream := TFileStream.Create(edit2.text, fmCreate); try IdHTTP1.Get(edit1.text, responseStream); except on EIdHTTPProtocolException do ausgabe:='Fehler!'+#13#10 + IdHTTP1.ResponseText; end;//try end; hab das aus nem ![]() |
Re: Prüfen ob eine URL erreichbar ist (kein Download)
Benutze mal anstatt von IdHTTP1.Get die Anweisung IdHTTP1.Head. Damit werden nur die Header geholt, Get holt auch den Inhalt, aber den wolltest Du doch nicht. ;-)
...:cat:... |
Re: Prüfen ob eine URL erreichbar ist (kein Download)
Zitat:
Stimmt. Ok, ich hab das so gemacht:
Delphi-Quellcode:
Das funktioniert auch. Aber leider passiert hier bei Eingabe einer nicht existierender URL das selbe. Ich bekomme ein Eine Fehlermeldung vom System.
procedure TForm1.Button2Click(Sender: TObject);
var ausgabe:String; begin try IdHTTP1.Head(edit3.text); except on EIdHTTPProtocolException do ausgabe:='Fehler!'+#13#10 + IdHTTP1.ResponseText; end;//try if (Length(ausgabe)<1) then ausgabe:='OK, alles klar'+#13#10 + IdHTTP1.ResponseText; ShowMessage(ausgabe); end; Hmmm.. vielleicht sollte ich mal die Anwendung ausserhalb der Entwicklungsumgebung starten. |
Re: Prüfen ob eine URL erreichbar ist (kein Download)
Du hast einen Exception-Handler geschrieben, der nur auf den Fehlertyp EIdHTTPProtocolException reagiert. Andere gehen ungehindert durch.
Code:
...:cat:...
procedure TForm1.Button1Click(Sender: TObject);
var ausgabe:String; begin try IdHTTP1.Head('http://www.nichtda.org/tot.de'); except on EIdHTTPProtocolException do ausgabe:='Fehler!'+#13#10 + IdHTTP1.ResponseText; [color=#ff0000]// die anderen Fehler on E: Exception do ausgabe:='Auch ein Fehler (' + E.ClassName + ')!'+#13#10 + E.Message;[/color] end;//try if (Length(ausgabe)<1) then ausgabe:='OK, alles klar'+#13#10 + IdHTTP1.ResponseText; ShowMessage(ausgabe); end; |
Re: Prüfen ob eine URL erreichbar ist (kein Download)
@ wk_one
Ich liebe Cross-Postings, bei denen man Tips von anderen Foren als eigene Ideen verkauft StarFire |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:48 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