Je suis en utilisant les communes Apache HTTP DefaultHttpClient
et après la construction, je suis la mise en son gestionnaire de nouvelle tentative:Apache HttpClient HttpRequestRetryHandler jamais invoqué
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;
}
});
Le serveur que je vous envoie mes demandes fréquemment fois sur et dans le catch
de mon appel execute(), je reçois une erreur d'E/S, "L'opération a expiré" mais je ne vois jamais l'instruction de journalisation "réessayer gestionnaire reçu exception de type" dans ma sortie de console. Toutes mes demandes sont des requêtes POST, mais elles sont idempotentes: elles peuvent être appelées plusieurs fois sans risque d'effets secondaires. Est-ce que je configure incorrectement le gestionnaire de réessai? Le gestionnaire de nouvelles tentatives est-il uniquement appelé dans certains scénarios?
Malheureusement, je n'ai plus accès au code source du projet, donc je ne peux pas l'essayer. – skyler