tutorial icon example create java http apache-httpclient-4.x apache-httpcomponents

java - icon - Conexión y tiempo de espera de solicitud de conexión.



set border jpanel java (2)

Estoy usando los componentes de Aptt de Http para realizar las interacciones de http. Necesito ajustar mi cliente http. Para este propósito tengo dos parámetros: tiempo de espera de conexión y tiempo de espera de solicitud de conexión. En la documentación de la biblioteca y en el código fuente (no se encontraron comentarios) no encontré la definición de estos términos. Necesito saber qué significan exactamente. Puede que se hayan definido en la documentación del protocolo HTTP, pero no puedo encontrarlo. Entonces, mi pregunta es qué significan estos dos términos y cómo se diferencian entre sí.


En HttpClient 4.XX, lo siguiente es cómo construir un cliente que utiliza un determinado connectTimeoutMillis y requestTimeoutMillis .

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(); ...

Por cierto, los javadocs para este código apesta. Trate de averiguar a mano cómo utilizar el generador de configuración. Santo cielo.


HttpClient tiene una forma de configurar el tiempo de espera de conexión y socket ( setConnectionTimeout() y setTimeout() ) de acuerdo con http://hc.apache.org/httpclient-3.x/apidocs/org/apache/commons/httpclient/HttpClient.html

Connection timeout es el tiempo de espera hasta que se establece una conexión con el servidor.

Socket timeout es el tiempo de espera para recibir datos (tiempo de espera de socket).

Ejemplo:

Digamos que apuntas tu navegador para acceder a una página web. Si el servidor no responde en X segundos, se producirá un tiempo de espera de conexión. Pero si establece la conexión, entonces el servidor comenzará a procesar el resultado para el navegador. Si no finaliza este procesamiento en Y segundos, se producirá un tiempo de espera de socket.