Bei Verwendung von Apaches HttpClient kann ich die folgenden drei Timeout-Werte (Millisekunden) festlegen, aber ich habe den Unterschied nicht gut verstanden und versucht, sie selbst zusammenzufassen.
import org.apache.http.client.HttpClient;
import org.apache.http.client.config.RequestConfig;
RequestConfig config = RequestConfig.custom()
.setConnectTimeout(30000)
.setConnectionRequestTimeout(30000)
.setSocketTimeout(30000)
.build();
HttpClient httpClient = HttpClients.custom()
.setDefaultRequestConfig(config)
.build();
ConnetionTimeout Der Zeitlimitwert für das Senden einer Verbindungsanforderung an den Server und das Empfangen einer Antwort, dass die Verbindung hergestellt wurde. Kurz gesagt, stellen Sie die Zeit ein, die erforderlich ist, um eine Verbindung mit einem 3-Wege-Handshake herzustellen.
ConnectionRequestTimeout Der Zeitüberschreitungswert zwischen dem Senden einer Anforderung an den Server und dem Zurückgeben einer Antwort nach Abschluss der obigen Verbindung.
SocketTimeut Der Timeout-Wert, der zur Überwachung der Socket-Kommunikation verwendet wird. Bei der Socket-Kommunikation werden Pakete kontinuierlich empfangen. Wenn das Empfangsintervall jedoch länger als dieser Wert ist, tritt eine Zeitüberschreitung (= SocketTimeoutException) auf.
Recommended Posts