Skip to content

Instantly share code, notes, and snippets.

@mohsenoid
Last active February 4, 2018 17:36
Show Gist options
  • Save mohsenoid/4fe8f47a875481f89d9db593c18fedfe to your computer and use it in GitHub Desktop.
Save mohsenoid/4fe8f47a875481f89d9db593c18fedfe to your computer and use it in GitHub Desktop.
@Singleton
@Provides
@Named("retryInterceptor")
public Interceptor provideRetryInterceptor(@Named("retryCount") int retryCount) {
return chain -> {
Request request = chain.request();
Response response = null;
IOException exception = null;
int tryCount = 0;
while (tryCount < retryCount && (null == response || !response.isSuccessful())) {
// retry the request
try {
response = chain.proceed(request);
} catch (IOException e) {
exception = e;
} finally {
tryCount++;
}
}
// throw last exception
if (null == response && null != exception)
throw exception;
// otherwise just pass the original response on
return response;
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment