Hallo,
Nach stundenlangem Suchen und ausprobieren, frage ich hier einfach mal nach. Ich habe die untere Funktion. Damit rufe ich eine URL im Hintergrund auf. Als Result wird mir dann der JSON übergabe wert als String zurückgeliefert. Ziel ist es von Delphi aus Daten über die URL an das php script auf meinen Server zu schicken, dieser wertet das ganze aus, und schickt einen json string an Delphi zurück. Soweit funktioniert das Ganze auch super! Vorausgesetzt es besteht eine Internet Verbindung!
Und da liegt mein Problem. Wenn keine Verbindung besteht, dann Versucht die funktion quasi in einer Endlosschleife die URL zwanghaft doch zu öffnen, was ja nicht geht, und deswegen hängt sich immer die komplette Form auf wodurch ich das Programm beenden muss!
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| function LoadURL(url: string): string; var HttpLoader: TIdHttp; begin HttpLoader := TIdHttp.Create; try result := HttpLoader.Get(url); finally HttpLoader.Free; end; end; |
Jetzt versuche ich seit Stunden einen Timeout mit in der funktion einzubauen. Also das die funktion 3 sekunden lang versuchen kann die URL zu öffnen, wenn das nicht gelingt wird die funktion abgebrochen, und false zurückgeliefert!
Habe schon:
Idhttp1.ReadTimeout := 3000;
Idhttp1.ConnectTimeout := 3000;
ausprobiert, das funktioniert aber nicht, da dennoch nicht abgebrochen wird.
Wer kann helfen?
Danke