Fphttpclient: Timeout mit Get?

Rund um die LCL und andere Komponenten

Fphttpclient: Timeout mit Get?

Beitragvon Timm Thaler » 16. Aug 2018, 01:04 Fphttpclient: Timeout mit Get?

Laut https://fossies.org/diffs/fpcbuild/3.0.0_vs_3.0.2/fpcsrc/packages/fcl-web/src/base/fphttpclient.pp-diff.html sollte fphttpclient die Angabe IOTimeout enthalten. Nun habe ich das versucht auf eine Get-Anweisung anzuwenden:

Code: Alles auswählen
ttest := Now();
    try
      httpClient := TFPHTTPClient.Create(nil);
      httpClient.IOTimeout := 2// Timeout 2 Sek
      try
        url := ctgaddr;
        txt := httpClient.Get(url);
      except  // Timeout oder Verbindungsfehler
        log.Message('Telegram Bot getrennt');
      end;
    finally
      httpClient.Free;
    end;
    WriteLn('Dauer ', MillisecondsBetween(Now(), ttest));


Allerdings bekomme ich bei IOTimeout von 2 oder 20 keine Verbindung, die Exception wird ausgelöst, Dauer etwa 30msec.

Bei Timeout 50 bekomme ich sporadisch Verbindung, Dauer dann um die 230msec, oder eine Exception mit Dauer 50msec.

Bei Timeout 100 oder größer bekomme ich die Verbindung, Dauer etwa 230msec, mitunter aber auch 3, 4, 5 Sekunden. Eine Exception bekomme ich nur, wenn die Verbindung wirklich unterbrochen ist, dann aber innerhalb von 3-5msec.

Ich kann hier keinen Zusammenhang zwischen den für Timeout angegebenen Wert und der realen Dauer erkennen. Eigentlich sollte Timeout doch in Sekunden sein, oder? Ich hätte gern ein Timeout nach etwa 15 Sekunden. Vordefinierter Wert für IOTimeout ist übrigens 0. Kompiliert mit FPC 3.1.1, Crosscompiler für arm-linux, läuft auf dem Raspberry unter dem aktuellen Raspbian.
Timm Thaler
 
Beiträge: 707
Registriert: 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded | 
CPU-Target: Raspberry Pi 3
Nach oben

Beitragvon wp_xyz » 16. Aug 2018, 07:56 Re: Fphttpclient: Timeout mit Get?

Timm Thaler hat geschrieben:Eigentlich sollte Timeout doch in Sekunden sein, oder?

Nein, in Millisekunden.
wp_xyz
 
Beiträge: 2647
Registriert: 8. Apr 2011, 08:01

Beitragvon Timm Thaler » 16. Aug 2018, 11:16 Re: Fphttpclient: Timeout mit Get?

wp_xyz hat geschrieben:Nein, in Millisekunden.


Ok, dann hab ich das in einem Forum falsch gesehen. Gibts eine Doku dazu?

Aber warum läuft dann einerseits Get ins Timeout, wenn ich 20-50 einstelle, andererseits gibt es auch nach 5 Sekunden kein Timeout, wenn ich 2000 einstelle - was ja dann 2 Sekunden wäre?
Timm Thaler
 
Beiträge: 707
Registriert: 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded | 
CPU-Target: Raspberry Pi 3
Nach oben

• Themenende •

Zurück zu Komponenten und Packages



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste

porpoises-institution
accuracy-worried