Ich habe ein Problem mit einer Bibliothek, die ich verwende. Es könnte die Bibliothek sein oder ich könnte sie falsch benutzen!
Grundsätzlich, wenn ich das mache (Timeout in Millisekunden)
_ignitedHttp.setConnectionTimeout(1); // v short
_ignitedHttp.setSocketTimeout(60000); // 60 seconds
Es wird keine Timeout-Ausnahme generiert und es funktioniert einwandfrei, wenn ich jedoch Folgendes tue:
_ignitedHttp.setConnectionTimeout(60000); // 60 seconds
_ignitedHttp.setSocketTimeout(1); // v short
Ich bekomme eine Socket-Ausnahme.
Meine Frage ist also, warum ich eine Verbindungsausnahme nicht simulieren kann. Verstehe ich den Unterschied zwischen einem Socket und einem Verbindungs-Timeout falsch? Die Bibliothek ist hier (noch nicht offiziell freigegeben).
quelle
Ein Verbindungszeitlimit ist die maximale Zeit, die das Programm warten möchte, um eine Verbindung zu einem anderen Prozess herzustellen. Zu diesem Zeitpunkt erhalten oder veröffentlichen Sie keine Anwendungsdaten, sondern stellen lediglich die Verbindung selbst her.
Ein Socket-Timeout ist das Timeout beim Warten auf einzelne Pakete. Es ist ein weit verbreitetes Missverständnis, dass ein Socket-Timeout das Timeout ist, um die vollständige Antwort zu erhalten. Wenn Sie also eine Socket-Zeitüberschreitung von 1 Sekunde und eine Antwort aus 3 IP-Paketen haben, bei der jedes Antwortpaket 0,9 Sekunden benötigt, um eine Gesamtantwortzeit von 2,7 Sekunden zu erreichen, tritt keine Zeitüberschreitung auf.
quelle