package cm.android.common.http;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import okhttp3.Interceptor;
import okhttp3.Request;
import okhttp3.Response;
public class RetryInterceptor implements Interceptor {
private int count;
public RetryInterceptor(int count) {
this.count = count;
}
private static final Logger logger = LoggerFactory.getLogger("net");
@Override
public Response intercept(Interceptor.Chain chain) throws IOException {
Request request = chain.request();
// try the request
Response response = chain.proceed(request);
int tryCount = 0;
while (!response.isSuccessful() && tryCount < count) {
logger.info("okhttp:proceed:tryCount= {}", tryCount);
tryCount++;
response = chain.proceed(request);
}
return response;
}
}