Ich verwende Http Apache Components, um die HTTP-Interaktionen durchzuführen. Ich muss meinen http-Client anpassen. Zu diesem Zweck habe ich zwei Parameter: Verbindungstimeout und Timeout der Verbindungsanforderung. In Bibliotheksdokumentation und im Quellcode (keine Kommentare gefunden) habe ich keine Definition dieser Begriffe gefunden. Ich muss wissen, was genau sie bedeuten. Möglicherweise wurden sie in der HTTP-Protokolldokumentation definiert, aber ich kann sie nicht finden. Also, meine Frage ist, was bedeuten diese beiden Begriffe und wie unterscheiden sie sich voneinander.Zeitlimit für Verbindung und Verbindungsanforderung
Antwort
HttpClient
hat eine Art Verbindung und Buchse Timeout einzustellen (setConnectionTimeout()
und setTimeout()
) nach http://hc.apache.org/httpclient-3.x/apidocs/org/apache/commons/httpclient/HttpClient.html
Connection timeout
ist die Timeout, bis eine Verbindung mit dem Server hergestellt wird.
Socket timeout
ist das Zeitlimit für den Empfang von Daten (Socket-Timeout).
Beispiel:
Lassen Sie uns sagen Sie Ihren Browser zeigen eine Web-Seite zuzugreifen. Wenn der Server in X Sekunden nicht anwächst, wird ein Verbindungstimeout auftreten. Wenn die Verbindung jedoch hergestellt wird, beginnt der Server mit der Verarbeitung des Ergebnisses für den Browser. Wenn diese Verarbeitung nicht innerhalb von Y Sekunden beendet wird, tritt ein Socket-Timeout auf.
Vielen Dank für Ihre Antwort, aber ich habe immer noch ein Problem. Hier ist Request Config Builder http://hc.apache.org/httpcomponents-client-4.3.x/httpclient/apidocs/org/apache/http/client/config/RequestConfig.Builder.html und es hat drei Methoden setConnectionRequestTimeout, setConnectTimeout , setSocketTimeout (und keine Kommentare!). Ich weiß also immer noch nicht, was genau jede Methode macht und welche Methoden ich anwenden sollte. – mvb13
Ok, ich habe schließlich festgestellt, dass getConnectionRequestTimeout imeout in Millisekunden zurückgibt, wenn eine Verbindung vom Verbindungsmanager angefordert wird. Ich nehme an, dass Verbindungsmanager apache-httpcomponents-Bibliotheksklasse ist, also werde ich sie nicht benutzen. Ich werde setConnectionTimeout() und setTimeout() verwenden. – mvb13
Für die Nachwelt, in HttpClient 4.X.X, das folgende ist, wie Sie einen Client erstellen, der eine bestimmte connectTimeoutMillis
und requestTimeoutMillis
verwendet.
HttpClientBuilder clientBuilder = HttpClientBuilder.create();
RequestConfig.Builder requestBuilder = RequestConfig.custom();
requestBuilder = requestBuilder.setConnectTimeout(connectTimeoutMillis);
requestBuilder = requestBuilder.setConnectionRequestTimeout(requestTimeoutMillis);
clientBuilder.setDefaultRequestConfig(requestBuilder.build());
CloseableHttpClient httpClient = clientBuilder.build();
...
Btw, die Javadocs für diesen Code saugt. Versuchen Sie, mit der Hand herauszufinden, wie Sie den Config-Builder verwenden. Heiliger Strohsack.
- 1. Einfache Java-Chat-Programmhilfe, Client-Zeitlimit bei Verbindung mit Server
- 2. Oracle Data Provider für .NET: Zeitüberschreitung der Verbindungsanforderung
- 3. Zeitlimit java.sql.ResultSet
- 4. Zeitlimit für SQL Server-Agent-Job
- 5. Einstellung Zeitlimit für bestimmte Aufgabe mit Sellerie
- 6. Zeitlimit für Ajax-Anforderung in ExtJs erhöhen
- 7. Hat AssemblyCleanup ein Zeitlimit?
- 8. Scons Befehl mit Zeitlimit
- 9. Django Sellerie Zeitlimit überschritten?
- 10. Haskell Zeitlimit zur Bewertung
- 11. Kattis Telefonliste, Zeitlimit überschritten
- 12. Wie Zeitlimit zum Verbinden von MySQL-Datenbank
- 13. Zeitlimit abgelaufen. Das Zeitlimit ist abgelaufen vor dem Abschluss des Vorgangs oder der Server antwortet nicht
- 14. Zeitlimit für ADFS 2.0 und Beziehung zwischen den Parametern Frischewert, TokenLifetime und WebSSOLifetime
- 15. Das Zeitlimit, das vor dem Erhalt einer Verbindung vom Pool verstrichen ist
- 16. Warum das Zeitlimit für Formularauthentifizierung länger als das Sitzungstimeout festlegen?
- 17. Zeitlimit für SOAP-Anfragen in der Konsolen-App (.NET)
- 18. Wie kann ich das Zeitlimit für get_file_contents in PHP setzen?
- 19. Zeitlimit von urllib2 verarbeiten? - Python
- 20. Zeitlimit für die Verarbeitung der Sitzung auf dem Client
- 21. Gibt es ein Zeitlimit für Cron-Jobs in Google Apps?
- 22. Kann ich das Zeitlimit für eine Funktion in PHP definieren?
- 23. Erhöhen Sie die Zeitlimit für LDAP in C#
- 24. Wie kann ich das Zeitlimit für webClient.UploadData() ändern?
- 25. Zeitlimit abgelaufen. Die Zeitüberschreitung ist abgelaufen, bevor eine Verbindung vom Pool erhalten wurde. Enterprise-Bibliothek
- 26. Beziehung zwischen "close" für PreparedStatement und Verbindung?
- 27. Zeitlimit abgelaufen. Die Zeitüberschreitung ist abgelaufen, bevor eine Verbindung vom Pool erhalten wurde.
- 28. ASP - das Zeitlimit wird vor eine Verbindung aus dem Pool zu erhalten
- 29. Google PHP App Engine Zeitlimit erhöhen
- 30. Wie kann das Zeitlimit für eine Web-Service-Anfrage erhöht werden?
Versuchen Sie, sie ohne Apache oder Java zu durchsuchen keywords: http://en.wikipedia.org/wiki/Timeout_(computing) –