java - libreria - org apache http client methods httppost
Con Apache HttpClient, ¿por qué no funciona el tiempo de espera de mi conexión? (3)
Mi implementación de httpclient de vez en cuando arroja una excepción al llamar a doGetConnection (). Sin embargo, tengo el siguiente tiempo de espera establecido
_moHttpClient.setHttpConnectionFactoryTimeout(30000);
parece que mi tiempo de espera no está siendo recogido. ¿Hay algún otro lugar en el que necesite establecer un tiempo de espera para garantizar que este comportamiento no vuelva a ocurrir?
cmparams.setSoTimeout (10000);
Este es para todos HttpClient por defecto.
params.setSoTimeout (5000);
Y este es para un httpclient particular.
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 conjuntos SoTimeouts diferentes. 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 en vivo en nuestro lugar en este momento, pero no puedo decir si funciona porque es correcto o porque la Providencia me sonríe (y el otro extremo suele estar siempre disponible).
¿Qué excepción te lanzan?
No olvide que tiene dos tiempos de espera para cambiar / verificar. De HttpConnectionParams
setConnectionTimeout()
setSoTimeout()
para que pueda controlar cuánto tiempo espera para conectarse al servidor y cuánto tiempo pueden durar las operaciones en el socket antes de que se agote el tiempo de espera.