2008-09-25 19 views
11

Mi implementación de httpclient de vez en cuando arroja una excepción al llamar a doGetConnection(). Sin embargo, yo he puesto el siguiente tiempo de esperaCon Apache HttpClient, ¿por qué no funciona el tiempo de espera de conexión?

_moHttpClient.setHttpConnectionFactoryTimeout(30000); 

se ve casi igual que mi tiempo de espera no está siendo recogido. ¿Hay algún lugar más que tenga que establecer un tiempo de espera para asegurar que este comportamiento no vuelva a ocurrir

Respuesta

7
HttpConnectionManagerParams cmparams = new HttpConnectionManagerParams(); 
    cmparams.setSoTimeout(10000); 
    cmparams.setTcpNoDelay(true); 
    HttpConnectionManager manager = new SimpleHttpConnectionManager(); 
    manager.setParams(cmparams); 
    params = new HttpClientParams(); 
    params.setSoTimeout(5000); 
    client = new HttpClient(params, manager); 

Me pregunto por qué tengo dos SoTimeouts diferentes establecidos. Tal vez estaba tratando de averiguar cuál estaba realmente activo, ya que tuve los mismos problemas que cuando lo usé.

Lo anterior está en código directo en nuestro lugar en este momento, pero no puedo decir si funciona porque es correcto o porque Providence me sonríe (y el otro extremo suele estar siempre disponible).

4

cmparams.setSoTimeout (10000);

Este es para todos HttpClient por defecto.

params.setSoTimeout (5000);

Y este es para un httpclient particular.

10

¿Qué excepción te están lanzando?

No olvide que tiene dos tiempos de espera para cambiar/verificar. De HttpConnectionParams

setConnectionTimeout() 
setSoTimeout() 

para que pueda controlar cuánto tiempo espera para una conexión con el servidor, y cómo las operaciones largas en el zócalo puede tomar antes de que se agote el tiempo.

+0

Los documentos parecen indicar que SO_TIMEOUT es el tiempo máximo permitido para que el servidor no responda desde el último paquete TCP recibido. http://hc.apache.org/httpcomponents-core-ga/httpcore/apidocs/org/apache/http/params/CoreConnectionPNames.html#SO_TIMEOUT –

Cuestiones relacionadas