Apache HttpComponents HttpClient délai d'attente
Comment dois-je configurer le délai d'expiration de connexion dans httpcomponents httpclient? J'ai trouvé de la documentation sur: http://hc.apache.org/httpcomponents-client-ga/tutorial/html/connmgmt.html mais il n'est pas clair comment ces paramètres sont en fait set.
Aussi, une explication de la différence entre SO_TIMEOUT
et CONNECTION_TIMEOUT
serait utile.
Vous devez vous connecter pour publier un commentaire.
Dans la version 4.3 de Client Http Apache que la configuration a été refait (encore une fois). Le nouveau mode ressemble à ceci:
requestBuilder.setSocketTimeout(timeout);
trop. Veuillez noter quetimeout
devrait être millisecondes!setConnectTimeout()
etsetConnectionRequestTimeout()
est pas la même que la définition desCONNECTION_TIMEOUT
etSO_TIMEOUT
(comme dans la question). Vous voulez probablementsetConnectTimeout()
etsetSocketTimeout()
.RequestConfig config = RequestConfig.custom().setConnectTimeout(timeout).setSocketTimeout(timeout).build();
RequestConfig.custom().setConnectionTimeout(timeout).setConnectionRequestTimeout(timeout).build()
est tout ce qu'il faut pour vous construire la RequestConfig vous avez besoin. En va de même pour HttpClient bâtiment...Dans HttpClient 4.3 version, vous pouvez utiliser l'exemple ci-dessous.. disons que pour 5 secondes
La réponse de @jontro est correct, mais il est toujours agréable d'avoir un extrait de code sur la façon de faire. Il y a deux façons de le faire:
Version 1: Définir un 10 secondes de délai d'attente pour chacun de ces paramètres:
Version 2: Également définir un 10 secondes de délai d'attente pour chacun de ces paramètres:
.getParams()
id obsolète maintenant, et elle jette unUnsupportedOperationException
Dans la section 2.5 vous pouvez voir un exemple de la façon de définir la CONNECTION_TIMEOUT paramètre.
CONNECTION_TIMEOUT est le temps d'attente pour la connexion initiale et SO_TIMEOUT est le délai d'attente que vous attendez lors de la lecture d'un paquet, après que la connexion est établie.
J'ai un hard délai d'attente pour l'ensemble de la demande pour contourner le
java.net.SocketInputStream.socketRead0
problème.