Created
May 3, 2017 08:22
-
-
Save irshu355/7fd5379fa1aed18076489b7bec927a35 to your computer and use it in GitHub Desktop.
Resend network request on network error using OkHttp3
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class ErrorInterceptor implements Interceptor { | |
ICacheManager cacheManager; | |
Response response = null; | |
int tryCount = 0; | |
int maxLimit = 3; | |
int waitThreshold = 5000; | |
@Inject | |
public ErrorInterceptor() { | |
} | |
@Override | |
public Response intercept(Chain chain){ | |
// String language = cacheManager.readPreference(PreferenceKeys.LANGUAGE_CODE); | |
Request request = chain.request(); | |
response = sendReqeust(chain,request); | |
while (response ==null && tryCount < maxLimit) { | |
Log.d("intercept", "Request failed - " + tryCount); | |
tryCount++; | |
try { | |
Thread.sleep(waitThreshold); // force wait the network thread for 5 seconds | |
} catch (InterruptedException e) { | |
e.printStackTrace(); | |
} | |
response = sendReqeust(chain,request); | |
} | |
return response; | |
} | |
private Response sendReqeust(Chain chain, Request request){ | |
try { | |
response = chain.proceed(request); | |
if(!response.isSuccessful()) | |
return null; | |
else | |
return response; | |
} catch (IOException e) { | |
return null; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment