尊重他人的劳动成果,转载请标明出处:http://blog.csdn.net/gengqiquan/article/details/52200393, 本文出自:【gengqiquan的博客】
经过一段时间的挣扎,终于把新公司项目的网络框架换成了retrofit,由于项目是有失败重试和重定向需求的,所以需要在新的网络框架上增加这个功能,大家都知道retrofit的网络请求部分是基于okhttp的。这个时候可爱的Interceptor设计就提现出他的好处了,不需要修改其他的代码,直接增加一个拦截器就OK了
实现一个拦截器继承Interceptor(2.0到3.0之前的版本)
public class RetryAndChangeIpInterceptor implements Interceptor {
String FirstIP;
String SecondIP;
int RetryCount;
public RetryAndChangeIpInterceptor(String firsrIP, String secondIP, int tryCount) {
FirstIP = firsrIP;
SecondIP = secondIP;
RetryCount = tryCount;
}
public RetryAndChangeIpInterceptor(String firsrIP, String secondIP) {
FirstIP = firsrIP;
SecondIP = secondIP;
RetryCount = 3;
}
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
// try the request
Response response = chain.pr