Pour gérer Android Volley Timeout, vous devez utiliser RetryPolicy
RetryPolicy
- Volley fournit un moyen simple d'implémenter votre RetryPolicy pour vos demandes.
- Volley définit Socket & ConnectionTImeout par défaut sur 5 secondes pour toutes les demandes.
RetryPolicy
est une interface dans laquelle vous devez implémenter votre logique sur la façon dont vous souhaitez réessayer une demande particulière lorsqu'un délai d'expiration se produit.
Il traite de ces trois paramètres
- Timeout - Spécifie le délai d'expiration du socket en millisecondes pour chaque nouvelle tentative.
- Nombre de tentatives - Nombre de tentatives de relance.
- Back Off Multiplier - Un multiplicateur qui est utilisé pour déterminer le temps exponentiel défini sur socket pour chaque nouvelle tentative.
Par ex. Si RetryPolicy est créé avec ces valeurs
Délai d'expiration - 3000 ms, nombre de tentatives - 2, multiplicateur d'arrêt - 2,0
Nouvelle tentative 1:
- time = time + (time * Back Off Multiplier);
- temps = 3000 + 6000 = 9000ms
- Délai d'expiration du socket = temps;
- Requête expédiée avec un délai d'expiration du socket de 9 secondes
Nouvelle tentative 2:
- time = time + (time * Back Off Multiplier);
- temps = 9000 + 18000 = 27000ms
- Délai d'expiration du socket = temps;
- Requête expédiée avec un délai d'expiration du socket de 27 secondes
Donc, à la fin de Retry Attempt 2, si le délai d'expiration du socket se produit, Volley jettera un TimeoutError
dans votre gestionnaire de réponse d'erreur d'interface utilisateur.
jsonObjRequest.setRetryPolicy(new DefaultRetryPolicy(5000,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));