Autor |
Beitrag |
DerHorst
      
Beiträge: 31
windows200
delphi 6 PE
|
Verfasst: Mo 03.09.07 17:45
Ich möchte überprüfen, ob einen Website verfügbar ist. Mache ist mit Delphi-Quelltext 1:
| Temp := IdHTTP1.Get('http://'+dyndnshost); | Leider dauert erst immer viele Sekunden, bis er merkt, dass sie Seite nicht verfügbar ist. Möchte gerne z.B. ein Zeitlimit von 2000 ms setzen. Ich habe daher IdHTTP1.ConnectTimeout gefunden. Klappt soweit auch. Nur das Problem ist, dass denn ein Popup kommt und folgende Instruktionen nicht weiter ausgeführt werden. Ich kann man so etwas lösen? DANKE Hosrt Moderiert von matze: Delphi-Tags hinzugefügt
_________________ VIELEN DANK!
|
|
Chryzler
      
Beiträge: 1097
Erhaltene Danke: 2
|
Verfasst: Mo 03.09.07 18:48
Setz einfach den Get-Befehl in einen try..except-Block. Allerdings kommt, wenn du dein Programm in der IDE ausführst, immer eine Warnmeldung, erst wenn du die EXE ohne Debugger ausführst, kommt keine Meldung mehr (Man kann auch in den Optionen den Debugger temporär abschalten).
Übrigens (ich nehme mal an, dass du den Rückgabewert Temp nicht benötigst) kannst du jede Funktion auch als Prozedur aufrufen, schreib einfach:
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| try IdHTTP1.Get('http://'+dyndnshost); ShowMessage('URL geht'); except ShowMessage('URL geht ned'); end; |
|
|
DerHorst 
      
Beiträge: 31
windows200
delphi 6 PE
|
Verfasst: Mo 03.09.07 19:10
Nur so mit try und except dauert es ja zu lange...
Die Meldung wird ja durch IdHTTP1.ConnectTimeout ausgelöst...
_________________ VIELEN DANK!
|
|
Chryzler
      
Beiträge: 1097
Erhaltene Danke: 2
|
Verfasst: Mo 03.09.07 19:14
Ja dann umschließ halt den ConnectTimeout mit dem try..except-Block, oder zeig mal deinen relevanten Code.
|
|
DerHorst 
      
Beiträge: 31
windows200
delphi 6 PE
|
Verfasst: Mo 03.09.07 21:09
_________________ VIELEN DANK!
|
|
Chryzler
      
Beiträge: 1097
Erhaltene Danke: 2
|
Verfasst: Mo 03.09.07 21:17
DerHorst hat folgendes geschrieben: | Die Meldung wird ja durch IdHTTP1.ConnectTimeout ausgelöst... |
Nö, die Meldung wird durch TIdHTTP.Get ausgelöst.
DerHorst hat folgendes geschrieben: | mit IdHTTP1.ConnectTimeout:= 1000; im code kommt immer das Popup! |
Lies mal das was ich geschrieben hab gründlich durch.
Chryzler hat folgendes geschrieben: | Allerdings kommt, wenn du dein Programm in der IDE ausführst, immer eine Warnmeldung, erst wenn du die EXE ohne Debugger ausführst, kommt keine Meldung mehr (Man kann auch in den Optionen den Debugger temporär abschalten). |
|
|
DerHorst 
      
Beiträge: 31
windows200
delphi 6 PE
|
Verfasst: Di 04.09.07 15:34
Ich habs schon richtig gelsen;)
Es kommt das Popupfesnter mit dem Text "403 Frobidden"
Ist ist also nicht die Fehlermeldung, die etwas mit dem Debugger zu tun hat.
Und diese kommt halt nur, wenn IdHTTP1.ConnectTimeout:= 1000; definiert ist.
_________________ VIELEN DANK!
|
|
Chryzler
      
Beiträge: 1097
Erhaltene Danke: 2
|
Verfasst: Di 04.09.07 23:31
Das hat aber nix mit dem Code zu tun, sondern mit deiner Webseite, die du prüfen willst.
Folgender Code geht bei mir ohne jeden Fehler, probier ihn mal aus.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| try IdHTTP1.ConnectTimeout := 1000; IdHTTP1.Get('http://www.delphi-forum.de/'); ShowMessage('DF ist online'); except ShowMessage('DF ist offline'); end; |
|
|
DerHorst 
      
Beiträge: 31
windows200
delphi 6 PE
|
Verfasst: Mi 05.09.07 12:31
Vielen Dank für den Code, klappt auch.
Mit dem Forbidden liegt an der Seite, hast du recht!
Aber weißt du wie man die Popupmeldung unterdrückt, damit er weiter geht im Programm?
Viele Grüße
Horst
_________________ VIELEN DANK!
|
|
Chryzler
      
Beiträge: 1097
Erhaltene Danke: 2
|
Verfasst: Mi 05.09.07 14:40
|
|