diff --git a/app/src/main/java/com/monke/monkeybook/base/MBaseModelImpl.java b/app/src/main/java/com/monke/monkeybook/base/MBaseModelImpl.java index 2be2a60..2f69cd2 100644 --- a/app/src/main/java/com/monke/monkeybook/base/MBaseModelImpl.java +++ b/app/src/main/java/com/monke/monkeybook/base/MBaseModelImpl.java @@ -15,8 +15,7 @@ public class MBaseModelImpl { .connectTimeout(10, TimeUnit.SECONDS) .writeTimeout(10, TimeUnit.SECONDS) .readTimeout(10, TimeUnit.SECONDS) - .addNetworkInterceptor(new ProxyInterceptor()) - .addInterceptor(new RetryIntercepter(1)); + .addInterceptor(new ProxyInterceptor()); protected Retrofit getRetrofitObject(String url) { return new Retrofit.Builder().baseUrl(url) @@ -38,4 +37,4 @@ public class MBaseModelImpl { .build(); } -} +} \ No newline at end of file diff --git a/app/src/main/java/com/monke/monkeybook/base/ProxyInterceptor.java b/app/src/main/java/com/monke/monkeybook/base/ProxyInterceptor.java index 503b63a..38ec58c 100644 --- a/app/src/main/java/com/monke/monkeybook/base/ProxyInterceptor.java +++ b/app/src/main/java/com/monke/monkeybook/base/ProxyInterceptor.java @@ -13,13 +13,19 @@ import okhttp3.Response; public class ProxyInterceptor implements Interceptor { public ProxyInterceptor() { - } @Override public Response intercept(Chain chain) throws IOException { Request request = chain.request(); + Response response = request(chain,request); + return response; + } + + private Response request(Chain chain,Request request) throws IOException{ + Response response = null; if (ProxyManager.hasProxy()) { //如果是代理模式则优先请求代理服务器,失败再自行本地请求 + Request requestProxy = null; String url = request.url().toString(); if (!StringUtil.isBlank(url)) { url = URLEncoder.encode(url, "utf-8"); @@ -34,12 +40,22 @@ public class ProxyInterceptor implements Interceptor { }else{ requestProxyBuilder.post(request.body()); } - Response responseProxy = chain.proceed(requestProxyBuilder.build()); - if(responseProxy.isSuccessful()){ - return responseProxy; + requestProxy = requestProxyBuilder.build(); + try{ + response = chain.proceed(requestProxy); + if(response.isSuccessful()){ + return response; + } + }catch (Exception e){ + e.printStackTrace(); + }finally { + if(response!=null){ + response.close(); + response = null; + } } } - Response response = chain.proceed(request); + response = chain.proceed(request); return response; } -} +} \ No newline at end of file diff --git a/basemvplib/src/main/java/com/monke/basemvplib/impl/BaseModelImpl.java b/basemvplib/src/main/java/com/monke/basemvplib/impl/BaseModelImpl.java index dfcfb85..36dadbc 100644 --- a/basemvplib/src/main/java/com/monke/basemvplib/impl/BaseModelImpl.java +++ b/basemvplib/src/main/java/com/monke/basemvplib/impl/BaseModelImpl.java @@ -15,7 +15,7 @@ public class BaseModelImpl { .connectTimeout(10, TimeUnit.SECONDS) .writeTimeout(10, TimeUnit.SECONDS) .readTimeout(10, TimeUnit.SECONDS) - .addInterceptor(new RetryIntercepter(1)); + .addNetworkInterceptor(new RetryIntercepter(1)); protected Retrofit getRetrofitObject(String url) { return new Retrofit.Builder().baseUrl(url)