estoy usando los bienes comunes de Apache HTTP DefaultHttpClient
y después de la construcción, que estoy estableciendo su manejador de reintento:Apache HttpClient HttpRequestRetryHandler nunca invocó
httpClient.setHttpRequestRetryHandler(new HttpRequestRetryHandler() {
@Override
public boolean retryRequest(final IOException ioe,
final int numRetry, final HttpContext context)
{
Log.d(TAG, "retry handler received exception of type: " + ioe.getClass().getName() + ", num retries: " + numRetry);
if (numRetry > 4) { // 3 retries
return false;
}
// Some exceptions we can retry without knowledge of which methods are being invoked
if (ioe instanceof NoHttpResponseException
|| ioe instanceof UnknownHostException
|| ioe instanceof SocketException) {
}
return false;
}
});
El servidor que estoy enviando mis peticiones a menudo el tiempo de espera, y en el catch
de mi llamada execute(), recibo un error IO, "La operación agotó el tiempo de espera", sin embargo, nunca veo la instrucción de registro "retry handler received exception of type" en la salida de mi consola. Todas mis solicitudes son solicitudes POST, pero son idempotentes; es seguro llamar varias veces sin efectos secundarios adversos.
¿Estoy configurando incorrectamente el controlador de reintento? ¿El controlador de reintentos solo se invoca en ciertos escenarios?
Lamentablemente, ya no tengo acceso al código fuente del proyecto, así que no puedo probarlo. – skyler