Ne OkHttpClient avoir un max nombre de tentatives
Je suis en train de le recommencer sur l'échec de la connexion option pour OkHttpClient.
client = new OkHttpClient();
client.setRetryOnConnectionFailure(true);
J'aimerai savoir combien de fois il va continuer d'essayer. En regardant les le code source je n'ai pas vu de limite maximale. Comment puis-je configurer le client pour cesser d'essayer après quelques tentatives?
OriginalL'auteur RajV | 2016-06-17
Vous devez vous connecter pour publier un commentaire.
Il y a plus de docs ici https://square.github.io/okhttp/3.x/okhttp/okhttp3/OkHttpClient.Builder.html#retryOnConnectionFailure-boolean-
Mais en général, je crois qu'il est destiné à réessayer quand il y a un existant obsolète de connexion, ou d'autres chemins que peut être retentée. Pas pour recommencer exactement la même chose indéfiniment.
Voir aussi ConnectionSpecSelector.connectionFailed
OriginalL'auteur Yuri Schimke
J'ai fait une solution de contournement ci-dessous:
OriginalL'auteur Liangliang Sha
Il n'y a pas dans la construction de méthode pour définir la limite maximale, mais vous pouvez ajouter un intercepteur comme ci-dessous.
Plus de détails sur interceptos peut être trouvé ici.
Oui. si le code de réponse est 2xx ou 3xx,
isSuccessful()
sera de retourtrue
. Pour le reste, il sera de retourfalse
. Et les échecs de connexion sont pour la plupart 4xx, donc, il faut travailler.Échec de la connexion TCP signifie pas de requête HTTP peut être envoyé ou de la réponse obtenue. Je ne suis pas sûr de savoir comment le code d'état est 4xx.
RajV du droit,de la chaîne.procéder(demande) va jeter de l'OIE exception au lieu de return false lorsque la connexion est un échec, donc Prerak Sola réponse ne peut réessayer en fonction de la connexion est un succès
OriginalL'auteur Prerak Sola
OkHttp seront susceptibles de répéter vos demandes sur une lente/connexion non fiable “de manière agressive” jusqu'à ce qu'il réussisse. Ceci est fait pour GET, POST ou tout autre type de demandes de
OriginalL'auteur Rajesh Nasit