2015-08-28 11 views
11

Was ist das Verhalten von Lese- und Schreib-Timeouts in OkHttp?Lesen und Schreiben Timeouts Verhalten

Wird die Zeitüberschreitungsausnahme ausgelöst, wenn die gesamte Anforderung die Zeitüberschreitungsdauer überschreitet oder wenn der Socket für diese Dauer kein Paket empfängt (Lesen) oder senden (Schreiben)?

Ich denke, ist das zweite Verhalten, aber könnte jemand dies klären?

Vielen Dank im Voraus.

Antwort

11

Die Timeouts werden ausgelöst, wenn Sie zu lange blockieren. Beim Lesen, wenn der Server Ihnen keine Antwortdaten sendet. Beim Schreiben tritt es auf, wenn der Server die gesendete Anforderung nicht liest. Oder wenn das Netzwerk es so aussehen lässt, als würde es passieren!

Timeouts sind kontinuierlich: Wenn das Timeout 3 Sekunden beträgt und die Antwort 5 Bytes beträgt, kann ein Extremfall in 15 Sekunden erfolgreich sein, solange der Server alle 3 Sekunden etwas sendet. Mit anderen Worten, das Timeout wird nach einer erfolgreichen E/A zurückgesetzt.

Okios Timeout-Klasse bietet auch eine Terminabstraktion, die sich auf die Gesamtzeit bezieht.