From 6ff227c9c6d1c75cfa2afc8ed451e7f59bd87f9c Mon Sep 17 00:00:00 2001 From: "1105075896@qq.com" <1105075896@qq.com> Date: Sat, 5 Jan 2019 17:45:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=90=86=E8=AF=B7=E6=B1=82=E6=96=B0?= =?UTF-8?q?=E5=A2=9EAES=E5=8A=A0=E5=AF=86=20=E4=BC=98=E5=8C=96=E4=BB=A3?= =?UTF-8?q?=E7=90=86=E8=AF=B7=E6=B1=82=E6=97=B6=E6=95=B0=E6=8D=AE=E4=BC=A0?= =?UTF-8?q?=E9=80=92=20=E8=A1=A5=E5=85=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../monke/monkeybook/base/MBaseModelImpl.java | 5 ++-- .../monkeybook/base/ProxyInterceptor.java | 28 +++++++++++++++---- .../monke/basemvplib/impl/BaseModelImpl.java | 2 +- 3 files changed, 25 insertions(+), 10 deletions(-) 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)