Entwickler-Ecke
Internet / Netzwerk - Indy HTTP - ConnectTimeout Problem
DerHorst - Mo 03.09.07 17:45
Titel: Indy HTTP - ConnectTimeout Problem
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
Chryzler - 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 - 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...
Chryzler - Mo 03.09.07 19:14
Ja dann umschließ halt den ConnectTimeout mit dem try..except-Block, oder zeig mal deinen relevanten Code.
DerHorst - Mo 03.09.07 21:09
Delphi-Quelltext
1: 2: 3: 4: 5:
| try IdHTTP1.ConnectTimeout:= 1000; IdHTTP1.Get('http://test.dyndns.org'); except end; |
mit IdHTTP1.ConnectTimeout:= 1000; im code kommt immer das Popup!
Moderiert von
matze: Code- durch Delphi-Tags ersetzt
Chryzler - 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 - 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.
Chryzler - 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 - 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
Chryzler - Mi 05.09.07 14:40
DerHorst hat folgendes geschrieben: |
| Aber weißt du wie man die Popupmeldung unterdrückt, damit er weiter geht im Programm? |
Ist das soo schwer zu verstehen? :shock:
Chryzler hat folgendes geschrieben: |
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). |
|
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!