From 8d06d73c3761e5800117dfc1d09771167dba40b0 Mon Sep 17 00:00:00 2001 From: "229144497@qq.com" Date: Wed, 7 Jul 2021 17:41:54 +0800 Subject: [PATCH] =?UTF-8?q?findbugs=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 3 + README.md | 10 +- baseokhttp_v3/build.gradle | 2 +- baseokhttp_v3/src/main/config.json | 5 - .../com/kongzue/baseokhttp/BaseWebSocket.java | 13 +- .../com/kongzue/baseokhttp/HttpRequest.java | 471 +++++++-------- .../listener/JsonResponseListener.java | 2 +- .../kongzue/baseokhttp/util/BaseOkHttp.java | 144 +---- .../baseokhttp/util/BaseOkHttpConfig.java | 561 ++++++++++++++++++ .../kongzue/baseokhttp/util/JsonFormat.java | 4 +- .../com/kongzue/baseokhttp/util/JsonList.java | 6 +- .../com/kongzue/baseokhttp/util/JsonMap.java | 26 +- .../baseokhttp/util/JsonMapConfig.java | 54 ++ .../com/kongzue/baseokhttp/util/LockLog.java | 43 +- .../kongzue/baseokhttp/util/Parameter.java | 9 +- .../kongzue/baseokhttp/util/RequestInfo.java | 25 +- .../main/java/libcore/net/MimeTypeMap.java | 37 -- build.gradle | 6 +- entry/build.gradle | 2 +- entry/src/main/config.json | 11 +- .../newslice/DeleteAbilitySlice.java | 30 +- .../newslice/PostAbilitySlice.java | 34 +- .../newslice/PutAbilitySlice.java | 34 +- .../newslice/SetAbilitySlice.java | 55 +- .../newslice/TimeAbilitySlice.java | 3 +- .../kongzue/baseokhttpv3/slice/DataBean.java | 21 +- .../baseokhttpv3/slice/MainAbility1Slice.java | 34 +- .../slice/MainAbility2Sclice.java | 5 +- .../baseokhttpv3/slice/ProgressWheel.java | 15 +- .../kongzue/baseokhttpv3/ExampleOhosTest.java | 21 +- 30 files changed, 1036 insertions(+), 650 deletions(-) create mode 100644 baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/BaseOkHttpConfig.java create mode 100644 baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/JsonMapConfig.java diff --git a/CHANGELOG.md b/CHANGELOG.md index 29d8df1..ded6631 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## 0.0.2-SNAPSHOT +findbugs修改 + ## 0.0.1-SNAPSHOT ohos 第一个版本 * 实现原库所有Api \ No newline at end of file diff --git a/README.md b/README.md index 961904b..1ca382e 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ - 功能:OkHttp的二次封装库,提供各种快速使用方法以及更为方便的扩展功能。提供更高效的Json请求和解析工具以及文件上传下载封装,HTTPS和Cookie操作也更得心应手 - 项目移植状态:主功能完成 - 调用差异:无 -- 开发版本:sdk5,DevEco Studio 2.1 Release +- 开发版本:sdk6,DevEco Studio 2.2 Beta1 - 基线版本:release v3.2.1 #### 效果演示 @@ -30,12 +30,12 @@ allprojects { 2.在entry模块的build.gradle文件中, ```gradle dependencies { - implementation('com.gitee.chinasoft_ohos:BaseOkHttpV3:0.0.1-SNAPSHOT') + implementation('com.gitee.chinasoft_ohos:BaseOkHttpV3:0.0.2-SNAPSHOT') ...... } ``` -在sdk5,DevEco Studio2.1 Release下项目可直接运行 +在sdk6,DevEco Studio 2.2 Beta1下项目可直接运行 如无法运行,删除项目.gradle,.idea,build,gradle,build.gradle文件, 并依据自己的版本创建新项目,将新项目的对应文件复制到根目录下 @@ -740,14 +740,14 @@ CodeCheck代码测试无异常 CloudTest代码测试无异常 -火绒安全病毒安全检测通过 +病毒安全检测通过 当前版本demo功能与原组件基本无差异 #### 版本迭代 -- 0.0.1-SNAPSHOT +- 0.0.2-SNAPSHOT #### 版权和许可信息 diff --git a/baseokhttp_v3/build.gradle b/baseokhttp_v3/build.gradle index 0f5593c..ffb9242 100644 --- a/baseokhttp_v3/build.gradle +++ b/baseokhttp_v3/build.gradle @@ -1,6 +1,6 @@ apply plugin: 'com.huawei.ohos.library' ohos { - compileSdkVersion 5 + compileSdkVersion 6 defaultConfig { compatibleSdkVersion 5 } diff --git a/baseokhttp_v3/src/main/config.json b/baseokhttp_v3/src/main/config.json index 8fdba97..5ec67d2 100644 --- a/baseokhttp_v3/src/main/config.json +++ b/baseokhttp_v3/src/main/config.json @@ -5,11 +5,6 @@ "version": { "code": 1, "name": "1.0" - }, - "apiVersion": { - "compatible": 5, - "target": 5, - "releaseType": "Beta1" } }, "deviceConfig": {}, diff --git a/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/BaseWebSocket.java b/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/BaseWebSocket.java index 05bc242..167aaea 100644 --- a/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/BaseWebSocket.java +++ b/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/BaseWebSocket.java @@ -2,6 +2,8 @@ package com.kongzue.baseokhttp; import com.kongzue.baseokhttp.listener.WebSocketStatusListener; +import com.kongzue.baseokhttp.util.BaseOkHttp; +import com.kongzue.baseokhttp.util.BaseOkHttpConfig; import com.kongzue.baseokhttp.util.LockLog; import ohos.aafwk.ability.Ability; @@ -16,9 +18,6 @@ import okio.ByteString; import java.lang.ref.WeakReference; -import static com.kongzue.baseokhttp.util.BaseOkHttp.DEBUGMODE; -import static com.kongzue.baseokhttp.util.BaseOkHttp.websocketReconnectInterval; - /** * Author: @Kongzue Github: https://github.com/kongzue/ Homepage: http://kongzue.com/ Mail: @@ -164,7 +163,7 @@ public class BaseWebSocket { if (!autoReconnect | manualClose) { return; } - if (DEBUGMODE) { + if (BaseOkHttpConfig.getInstance().isDebugMode()) { loge("重连次数:" + reconnectCount); } if (!isNetworkConnected(context.get())) { @@ -173,7 +172,7 @@ public class BaseWebSocket { } status = RECONNECT; - long delay = reconnectCount * websocketReconnectInterval * 1000; + long delay = reconnectCount * BaseOkHttpConfig.getInstance().getWebsocketReconnectInterval() * 1000; mainLooperHandler.delayDispatch(reconnectRunnable, delay); reconnectCount++; } @@ -441,13 +440,13 @@ public class BaseWebSocket { } private void logd(String s) { - if (DEBUGMODE) { + if (BaseOkHttpConfig.getInstance().isDebugMode()) { LockLog.logI(">>>", s); } } private void loge(String s) { - if (DEBUGMODE) { + if (BaseOkHttpConfig.getInstance().isDebugMode()) { LockLog.logE(">>>", s); } } diff --git a/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/HttpRequest.java b/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/HttpRequest.java index 18ae7c1..ada2ead 100644 --- a/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/HttpRequest.java +++ b/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/HttpRequest.java @@ -53,7 +53,7 @@ public class HttpRequest extends BaseOkHttp { private String requestUrl; private String jsonParameter; private String stringParameter; - private int timeoutDuration = TIME_OUT_DURATION; + private int timeoutDuration = BaseOkHttpConfig.getInstance().getTimeOutDuration(); private Proxy proxy; private UploadProgressListener uploadProgressListener; @@ -66,6 +66,9 @@ public class HttpRequest extends BaseOkHttp { private boolean isSending; + //已存储的 Cookie 队列 + private HashMap> cookieStore = new HashMap<>(); + /** * POST一步创建方法 * @@ -353,12 +356,12 @@ public class HttpRequest extends BaseOkHttp { private RequestInfo requestInfo; private void send() { - timeoutDuration = TIME_OUT_DURATION; + timeoutDuration = BaseOkHttpConfig.getInstance().getTimeOutDuration(); isFileRequest = false; isJsonRequest = false; isStringRequest = false; if (proxy == null) { - proxy = BaseOkHttp.proxy; + proxy = BaseOkHttpConfig.getInstance().getProxy(); } if (parameter != null && !parameter.entrySet().isEmpty()) { @@ -406,15 +409,15 @@ public class HttpRequest extends BaseOkHttp { } //全局参数 - if (overallParameter != null && !overallParameter.entrySet().isEmpty()) { - for (Map.Entry entry : overallParameter.entrySet()) { + if (BaseOkHttpConfig.getInstance().getOverallParameter() != null && !BaseOkHttpConfig.getInstance().getOverallParameter().entrySet().isEmpty()) { + for (Map.Entry entry : BaseOkHttpConfig.getInstance().getOverallParameter().entrySet()) { parameter.add(entry.getKey(), entry.getValue()); } } - if (!skipSSLCheck && SSLInAssetsFileName != null && !SSLInAssetsFileName.isEmpty()) { + if (!skipSSLCheck && BaseOkHttpConfig.getInstance().getSSLInAssetsFileName() != null && !BaseOkHttpConfig.getInstance().getSSLInAssetsFileName().isEmpty()) { ResourceManager resManager = context.get().getResourceManager(); - RawFileEntry rawFileEntry = resManager.getRawFileEntry("resources/rawfile/" + SSLInAssetsFileName); + RawFileEntry rawFileEntry = resManager.getRawFileEntry("resources/rawfile/" + BaseOkHttpConfig.getInstance().getSSLInAssetsFileName()); okHttpClient = getOkHttpClient(context.get(), rawFileEntry.openRawFile()); } else { OkHttpClient.Builder builder = new OkHttpClient.Builder() @@ -432,16 +435,16 @@ public class HttpRequest extends BaseOkHttp { if (customOkHttpClientBuilder != null) { builder = customOkHttpClientBuilder.customBuilder(builder); } - if (BaseOkHttp.globalCustomOkHttpClientBuilder != null) { - builder = BaseOkHttp.globalCustomOkHttpClientBuilder.customBuilder(this, builder); + if (BaseOkHttpConfig.getInstance().getGlobalCustomOkHttpClientBuilder() != null) { + builder = BaseOkHttpConfig.getInstance().getGlobalCustomOkHttpClientBuilder().customBuilder(this, builder); } okHttpClient = builder.build(); } if (customOkHttpClient != null) { okHttpClient = customOkHttpClient.customBuilder(okHttpClient); } - if (BaseOkHttp.globalCustomOkHttpClient != null) { - BaseOkHttp.globalCustomOkHttpClient.customBuilder(this, okHttpClient); + if (BaseOkHttpConfig.getInstance().getGlobalCustomOkHttpClient() != null) { + BaseOkHttpConfig.getInstance().getGlobalCustomOkHttpClient().customBuilder(this, okHttpClient); } //创建请求 @@ -452,13 +455,13 @@ public class HttpRequest extends BaseOkHttp { if (isFileRequest) { requestInfo = new RequestInfo(url, parameter); - if (disallowSameRequest && equalsRequestInfo(requestInfo)) { + if (BaseOkHttpConfig.getInstance().isDisallowSameRequest() && equalsRequestInfo(requestInfo)) { return; } addRequestInfo(requestInfo); - if (parameterInterceptListener != null) { + if (BaseOkHttpConfig.getInstance().getParameterInterceptListener() != null) { try { - parameter = (Parameter) parameterInterceptListener.onIntercept(context.get(), url, parameter); + parameter = (Parameter) BaseOkHttpConfig.getInstance().getParameterInterceptListener().onIntercept(context.get(), url, parameter); } catch (Exception e) { } } @@ -470,7 +473,7 @@ public class HttpRequest extends BaseOkHttp { if (entry.getValue() instanceof File) { File file = (File) entry.getValue(); multipartBuilder.addFormDataPart(entry.getKey(), file.getName(), RequestBody.create(MediaType.parse(getMimeType(file)), file)); - if (DEBUGMODE) { + if (BaseOkHttpConfig.getInstance().isDebugMode()) { LockLog.logI(">>>", "添加文件:" + entry.getKey() + ":" + file.getName()); } } else if (entry.getValue() instanceof List) { @@ -479,7 +482,7 @@ public class HttpRequest extends BaseOkHttp { if (value instanceof File) { File file = (File) value; multipartBuilder.addFormDataPart(entry.getKey(), file.getName(), RequestBody.create(MediaType.parse(getMimeType(file)), file)); - if (DEBUGMODE) { + if (BaseOkHttpConfig.getInstance().isDebugMode()) { LockLog.logI(">>>", "添加文件:" + entry.getKey() + ":" + file.getName()); } } else { @@ -491,7 +494,7 @@ public class HttpRequest extends BaseOkHttp { } } } else { - if (DEBUGMODE) { + if (BaseOkHttpConfig.getInstance().isDebugMode()) { LockLog.Builder.create() .e(">>>", "-------------------------------------") .e(">>>", "创建请求失败:无上传的文件") @@ -509,24 +512,24 @@ public class HttpRequest extends BaseOkHttp { }; } else if (isJsonRequest) { requestInfo = new RequestInfo(url, jsonParameter); - if (disallowSameRequest && equalsRequestInfo(requestInfo)) { + if (BaseOkHttpConfig.getInstance().isDisallowSameRequest() && equalsRequestInfo(requestInfo)) { return; } addRequestInfo(requestInfo); - if (parameterInterceptListener != null) { + if (BaseOkHttpConfig.getInstance().getParameterInterceptListener() != null) { try { if (jsonParameter.startsWith("[")) { - jsonParameter = parameterInterceptListener.onIntercept(context.get(), url, JsonList.parse(jsonParameter)).toString(); + jsonParameter = BaseOkHttpConfig.getInstance().getParameterInterceptListener().onIntercept(context.get(), url, JsonList.parse(jsonParameter)).toString(); } else if (jsonParameter.startsWith("{")) { - jsonParameter = parameterInterceptListener.onIntercept(context.get(), url, JsonMap.parse(jsonParameter)).toString(); + jsonParameter = BaseOkHttpConfig.getInstance().getParameterInterceptListener().onIntercept(context.get(), url, JsonMap.parse(jsonParameter)).toString(); } else { - jsonParameter = (String) parameterInterceptListener.onIntercept(context.get(), url, jsonParameter); + jsonParameter = (String) BaseOkHttpConfig.getInstance().getParameterInterceptListener().onIntercept(context.get(), url, jsonParameter); } } catch (Exception e) { } } if (isNull(jsonParameter)) { - if (DEBUGMODE) { + if (BaseOkHttpConfig.getInstance().isDebugMode()) { LockLog.Builder.create() .e(">>>", "-------------------------------------") .e(">>>", "创建请求失败:" + jsonParameter + " 不是正确的json格式参数") @@ -543,18 +546,18 @@ public class HttpRequest extends BaseOkHttp { }; } else if (isStringRequest) { requestInfo = new RequestInfo(url, stringParameter); - if (disallowSameRequest && equalsRequestInfo(requestInfo)) { + if (BaseOkHttpConfig.getInstance().isDisallowSameRequest() && equalsRequestInfo(requestInfo)) { return; } addRequestInfo(requestInfo); - if (parameterInterceptListener != null) { + if (BaseOkHttpConfig.getInstance().getParameterInterceptListener() != null) { try { - stringParameter = (String) parameterInterceptListener.onIntercept(context.get(), url, stringParameter); + stringParameter = (String) BaseOkHttpConfig.getInstance().getParameterInterceptListener().onIntercept(context.get(), url, stringParameter); } catch (Exception e) { } } if (isNull(stringParameter)) { - if (DEBUGMODE) { + if (BaseOkHttpConfig.getInstance().isDebugMode()) { LockLog.Builder.create() .e(">>>", "-------------------------------------") .e(">>>", "创建请求失败:" + stringParameter) @@ -571,13 +574,13 @@ public class HttpRequest extends BaseOkHttp { }; } else { requestInfo = new RequestInfo(url, parameter); - if (disallowSameRequest && equalsRequestInfo(requestInfo)) { + if (BaseOkHttpConfig.getInstance().isDisallowSameRequest() && equalsRequestInfo(requestInfo)) { return; } addRequestInfo(requestInfo); - if (parameterInterceptListener != null) { + if (BaseOkHttpConfig.getInstance().getParameterInterceptListener() != null) { try { - parameter = (Parameter) parameterInterceptListener.onIntercept(context.get(), url, parameter); + parameter = (Parameter) BaseOkHttpConfig.getInstance().getParameterInterceptListener().onIntercept(context.get(), url, parameter); } catch (Exception e) { } } @@ -609,22 +612,22 @@ public class HttpRequest extends BaseOkHttp { } //请求头处理 - if (DEBUGMODE) { + if (BaseOkHttpConfig.getInstance().isDebugMode()) { LockLog.logI(">>>", "添加请求头:"); } Parameter allHeader = new Parameter(); - if (overallHeader != null && !overallHeader.entrySet().isEmpty()) { - allHeader.putAll(overallHeader); + if (BaseOkHttpConfig.getInstance().getOverallHeader() != null && !BaseOkHttpConfig.getInstance().getOverallHeader().entrySet().isEmpty()) { + allHeader.putAll(BaseOkHttpConfig.getInstance().getOverallHeader()); } if (headers != null && !headers.entrySet().isEmpty()) { allHeader.putAll(headers); } - if (headerInterceptListener != null) { - allHeader = headerInterceptListener.onIntercept(context.get(), url, allHeader); + if (BaseOkHttpConfig.getInstance().getHeaderInterceptListener() != null) { + allHeader = BaseOkHttpConfig.getInstance().getHeaderInterceptListener().onIntercept(context.get(), url, allHeader); } for (Map.Entry entry : allHeader.entrySet()) { builder.addHeader(entry.getKey(), entry.getValue() + ""); - if (DEBUGMODE) { + if (BaseOkHttpConfig.getInstance().isDebugMode()) { LockLog.logI(">>>>>>", entry.getKey() + "=" + entry.getValue()); } } @@ -633,7 +636,7 @@ public class HttpRequest extends BaseOkHttp { } request = builder.build(); - if (DEBUGMODE) { + if (BaseOkHttpConfig.getInstance().isDebugMode()) { LockLog.Builder logBuilder = LockLog.Builder.create() .i(">>>", "-------------------------------------") .i(">>>", "创建请求:" + url) @@ -666,15 +669,15 @@ public class HttpRequest extends BaseOkHttp { return; } isSending = false; - if (BaseOkHttp.reserveServiceUrls != null && BaseOkHttp.reserveServiceUrls.length != 0) { - if (DEBUGMODE) { + if (BaseOkHttpConfig.getInstance().getReserveServiceUrls() != null && BaseOkHttpConfig.getInstance().getReserveServiceUrls().length != 0) { + if (BaseOkHttpConfig.getInstance().isDebugMode()) { LockLog.Builder logBuilder = LockLog.Builder.create() - .e(">>>", "服务器:" + BaseOkHttp.serviceUrl + "请求失败 ×"); - if (reserveUrlIndex != BaseOkHttp.reserveServiceUrls.length) { - BaseOkHttp.serviceUrl = BaseOkHttp.reserveServiceUrls[reserveUrlIndex]; + .e(">>>", "服务器:" + BaseOkHttpConfig.getInstance().getServiceUrl() + "请求失败 ×"); + if (reserveUrlIndex != BaseOkHttpConfig.getInstance().getReserveServiceUrls().length) { + BaseOkHttpConfig.getInstance().setServiceUrl(BaseOkHttpConfig.getInstance().getReserveServiceUrls()[reserveUrlIndex]); reserveUrlIndex++; - logBuilder.e(">>>", "尝试更换为备用地址后重试:" + BaseOkHttp.serviceUrl); + logBuilder.e(">>>", "尝试更换为备用地址后重试:" + BaseOkHttpConfig.getInstance().getServiceUrl()); send(); logBuilder.e(">>>", "=====================================") .build(); @@ -686,7 +689,7 @@ public class HttpRequest extends BaseOkHttp { .build(); } } else { - if (DEBUGMODE) { + if (BaseOkHttpConfig.getInstance().isDebugMode()) { LockLog.Builder logBuilder = LockLog.Builder.create() .e(">>>", "请求失败:" + url) .e(">>>", "参数:"); @@ -717,8 +720,8 @@ public class HttpRequest extends BaseOkHttp { runOnMain(new Runnable() { @Override public void run() { - if (responseInterceptListener != null) { - if (responseInterceptListener.response(context.get(), url, null, e)) { + if (BaseOkHttpConfig.getInstance().getResponseInterceptListener() != null) { + if (BaseOkHttpConfig.getInstance().getResponseInterceptListener().response(context.get(), url, null, e)) { if (responseListener != null) { responseListener.response(null, e); } @@ -740,7 +743,7 @@ public class HttpRequest extends BaseOkHttp { } isSending = false; final String strResponse = response.body().string(); - if (DEBUGMODE) { + if (BaseOkHttpConfig.getInstance().isDebugMode()) { LockLog.Builder logBuilder = LockLog.Builder.create() .i(">>>", "请求成功:" + url) .i(">>>", "参数:"); @@ -772,8 +775,8 @@ public class HttpRequest extends BaseOkHttp { runOnMain(new Runnable() { @Override public void run() { - if (responseInterceptListener != null) { - if (responseInterceptListener.response(context.get(), url, strResponse, null)) { + if (BaseOkHttpConfig.getInstance().getResponseInterceptListener() != null) { + if (BaseOkHttpConfig.getInstance().getResponseInterceptListener().response(context.get(), url, strResponse, null)) { if (responseListener != null) { responseListener.response(strResponse, null); } @@ -789,7 +792,7 @@ public class HttpRequest extends BaseOkHttp { }); } catch (Exception e) { deleteRequestInfo(requestInfo); - if (DEBUGMODE) { + if (BaseOkHttpConfig.getInstance().isDebugMode()) { LockLog.Builder logBuilder = LockLog.Builder.create() .e(">>>", "请求创建失败:" + url) .e(">>>", "参数:"); @@ -839,7 +842,7 @@ public class HttpRequest extends BaseOkHttp { return "file/*"; } String type = MimeTypeMap.getSingleton().getMimeTypeFromExtension(suffix); - if (type != null || !type.isEmpty()) { + if (type != null && !type.isEmpty()) { return type; } return "file/*"; @@ -862,7 +865,7 @@ public class HttpRequest extends BaseOkHttp { } private String getRealRequestUrl(String url) { - String serviceUrl = BaseOkHttp.serviceUrl; + String serviceUrl = BaseOkHttpConfig.getInstance().getServiceUrl(); if (serviceUrl.endsWith("/") && url.startsWith("/")) { return serviceUrl + url.substring(1); } @@ -876,212 +879,188 @@ public class HttpRequest extends BaseOkHttp { private void download() { if (proxy == null) { - proxy = BaseOkHttp.proxy; + proxy = BaseOkHttpConfig.getInstance().getProxy(); + } + oldDownloadProgress = -1; + if (isNull(requestUrl)) { + LockLog.Builder.create() + .e(">>>", "-------------------------------------") + .e(">>>", "创建请求失败: 请求地址不能为空") + .e(">>>", "=====================================") + .build(); + } + if (!requestUrl.startsWith("http")) { + url = getRealRequestUrl(requestUrl); + } else { + url = requestUrl; } - try { - oldDownloadProgress = -1; - if (isNull(requestUrl)) { - LockLog.Builder.create() - .e(">>>", "-------------------------------------") - .e(">>>", "创建请求失败: 请求地址不能为空") - .e(">>>", "=====================================") - .build(); - } - if (!requestUrl.startsWith("http")) { - url = getRealRequestUrl(requestUrl); - } else { - url = requestUrl; - } - if (!skipSSLCheck && SSLInAssetsFileName != null && !SSLInAssetsFileName.isEmpty()) { - ResourceManager resManager = context.get().getResourceManager(); - RawFileEntry rawFileEntry = resManager.getRawFileEntry("resources/rawfile/" + SSLInAssetsFileName); + if (!skipSSLCheck && BaseOkHttpConfig.getInstance().getSSLInAssetsFileName() != null && !BaseOkHttpConfig.getInstance().getSSLInAssetsFileName().isEmpty()) { + ResourceManager resManager = context.get().getResourceManager(); + RawFileEntry rawFileEntry = resManager.getRawFileEntry("resources/rawfile/" + BaseOkHttpConfig.getInstance().getSSLInAssetsFileName()); + try { okHttpClient = getOkHttpClient(context.get(), rawFileEntry.openRawFile()); - } else { - OkHttpClient.Builder builder = new OkHttpClient.Builder() - .retryOnConnectionFailure(false) - .connectTimeout(timeoutDuration, TimeUnit.SECONDS) - .writeTimeout(timeoutDuration, TimeUnit.SECONDS) - .readTimeout(timeoutDuration, TimeUnit.SECONDS) - .hostnameVerifier(new HostnameVerifier() { - @Override - public boolean verify(String hostname, SSLSession session) { - return true; - } - }); - - if (proxy != null) { - builder.proxy(proxy); - } - if (autoSaveCookies) { - builder.cookieJar(new CookieJar() { + } catch (IOException e) { + e.printStackTrace(); + } + } else { + OkHttpClient.Builder builder = new OkHttpClient.Builder() + .retryOnConnectionFailure(false) + .connectTimeout(timeoutDuration, TimeUnit.SECONDS) + .writeTimeout(timeoutDuration, TimeUnit.SECONDS) + .readTimeout(timeoutDuration, TimeUnit.SECONDS) + .hostnameVerifier(new HostnameVerifier() { @Override - public void saveFromResponse(HttpUrl url, List cookies) { - cookieStore.put(url, cookies); - if (DEBUGMODE) { - for (Cookie cookie : cookies) { - LockLog.logI("<<<", "saveCookie: " + cookie.name() + " path:" + cookie.path()); - } - } + public boolean verify(String hostname, SSLSession session) { + return true; } + }); - @Override - public List loadForRequest(HttpUrl url) { - List cookies = cookieStore.get(url.host()); - return cookies != null ? cookies : new ArrayList(); + if (proxy != null) { + builder.proxy(proxy); + } + if (BaseOkHttpConfig.getInstance().isAutoSaveCookies()) { + builder.cookieJar(new CookieJar() { + @Override + public void saveFromResponse(HttpUrl url, List cookies) { + cookieStore.put(url, cookies); + if (BaseOkHttpConfig.getInstance().isDebugMode()) { + for (Cookie cookie : cookies) { + LockLog.logI("<<<", "saveCookie: " + cookie.name() + " path:" + cookie.path()); + } } - }); - } + } - if (customOkHttpClientBuilder != null) { - builder = customOkHttpClientBuilder.customBuilder(builder); - } - if (BaseOkHttp.globalCustomOkHttpClientBuilder != null) { - builder = BaseOkHttp.globalCustomOkHttpClientBuilder.customBuilder(this, builder); - } - okHttpClient = builder.build(); + @Override + public List loadForRequest(HttpUrl url) { + List cookies = cookieStore.get(url.host()); + return cookies != null ? cookies : new ArrayList(); + } + }); } - if (customOkHttpClient != null) { - okHttpClient = customOkHttpClient.customBuilder(okHttpClient); + + if (customOkHttpClientBuilder != null) { + builder = customOkHttpClientBuilder.customBuilder(builder); } - if (BaseOkHttp.globalCustomOkHttpClient != null) { - okHttpClient = BaseOkHttp.globalCustomOkHttpClient.customBuilder(this, okHttpClient); + if (BaseOkHttpConfig.getInstance().getGlobalCustomOkHttpClientBuilder() != null) { + builder = BaseOkHttpConfig.getInstance().getGlobalCustomOkHttpClientBuilder().customBuilder(this, builder); } + okHttpClient = builder.build(); + } + if (customOkHttpClient != null) { + okHttpClient = customOkHttpClient.customBuilder(okHttpClient); + } + if (BaseOkHttpConfig.getInstance().getGlobalCustomOkHttpClient() != null) { + okHttpClient = BaseOkHttpConfig.getInstance().getGlobalCustomOkHttpClient().customBuilder(this, okHttpClient); + } - //创建请求 + //创建请求 - Request request; - Request.Builder builder = new Request.Builder(); - builder.url(url); - builder.addHeader("Connection", "close"); - request = builder.build(); + Request request; + Request.Builder builder = new Request.Builder(); + builder.url(url); + builder.addHeader("Connection", "close"); + request = builder.build(); - if (DEBUGMODE) { - LockLog.Builder.create() - .i(">>>", "-------------------------------------") - .i(">>>", "开始下载:" + url) - .i(">>>", "=====================================") - .build(); - } - httpCall = okHttpClient.newCall(request); - httpCall.enqueue(new Callback() { - @Override - public void onFailure(Call call, final IOException e) { - if (DEBUGMODE) { - LockLog.Builder.create() - .e(">>>", "-------------------------------------") - .e(">>>", "下载失败:" + e.getMessage()) - .e(">>>", "=====================================") - .build(); - } - runOnMain(new Runnable() { - @Override - public void run() { - onDownloadListener.onDownloadFailed(e); - } - }); + if (BaseOkHttpConfig.getInstance().isDebugMode()) { + LockLog.Builder.create() + .i(">>>", "-------------------------------------") + .i(">>>", "开始下载:" + url) + .i(">>>", "=====================================") + .build(); + } + httpCall = okHttpClient.newCall(request); + httpCall.enqueue(new Callback() { + @Override + public void onFailure(Call call, final IOException e) { + if (BaseOkHttpConfig.getInstance().isDebugMode()) { + LockLog.Builder.create() + .e(">>>", "-------------------------------------") + .e(">>>", "下载失败:" + e.getMessage()) + .e(">>>", "=====================================") + .build(); } + runOnMain(new Runnable() { + @Override + public void run() { + onDownloadListener.onDownloadFailed(e); + } + }); + } - @Override - public void onResponse(Call call, Response response) throws IOException { + @Override + public void onResponse(Call call, Response response) throws IOException { - InputStream is = null; - byte[] buf = new byte[2048]; - int len = 0; - FileOutputStream fos = null; + InputStream is = null; + byte[] buf = new byte[2048]; + int len = 0; + FileOutputStream fos = null; - //储存下载文件的目录 + //储存下载文件的目录 + if (downloadFile != null) { File dir = downloadFile.getParentFile(); boolean mkdirs = false; - if (!dir.exists()) { + if (dir != null && !dir.exists()) { mkdirs = dir.mkdirs(); } - LockLog.logI("<<<", "mkdirs: " + mkdirs); + } - try { - is = response.body().byteStream(); - long total = response.body().contentLength(); - - //文件下载失败 + is = response.body().byteStream(); - if (onDownloadListener != null && !onDownloadListener.onDownLoadCheck(response)) { - runOnMain(new Runnable() { - @Override - public void run() { - onDownloadListener.onDownloadFailed(new TimeOutException()); - } - }); - return; - } + long total = response.body().contentLength(); + //文件下载失败 - fos = new FileOutputStream(downloadFile); - long sum = 0; - while ((len = is.read(buf)) != -1) { - fos.write(buf, 0, len); - sum += len; - final int progress = (int) (sum * 1.0f / total * 100); - if (DEBUGMODE && DETAILSLOGS) { - if (oldDownloadProgress != progress) { - LockLog.logI(">>>", "下载中:" + progress); - oldDownloadProgress = progress; - } - } - runOnMain(new Runnable() { - @Override - public void run() { - onDownloadListener.onDownloading(progress); - } - }); - } - fos.flush(); - //下载完成 - if (DEBUGMODE) { - LockLog.Builder.create() - .i(">>>", "-------------------------------------") - .i(">>>", "下载完成:" + url) - .i(">>>", "存储文件:" + downloadFile.getAbsolutePath()) - .i(">>>", "=====================================") - .build(); - } - runOnMain(new Runnable() { - @Override - public void run() { - onDownloadListener.onDownloadSuccess(downloadFile); - } - }); - } catch (final Exception e) { - if (DEBUGMODE) { - LockLog.Builder.create() - .e(">>>", "-------------------------------------") - .e(">>>", "下载过程错误:" + e.getMessage()) - .e(">>>", "=====================================") - .build(); + if (onDownloadListener != null && !onDownloadListener.onDownLoadCheck(response)) { + runOnMain(new Runnable() { + @Override + public void run() { + onDownloadListener.onDownloadFailed(new TimeOutException()); } - runOnMain(new Runnable() { - @Override - public void run() { - onDownloadListener.onDownloadFailed(e); - } - }); - } finally { - try { - if (is != null) { - is.close(); - } - if (fos != null) { - fos.close(); - } - } catch (IOException e) { + }); + return; + } + fos = new FileOutputStream(downloadFile); + long sum = 0; + while ((len = is.read(buf)) != -1) { + fos.write(buf, 0, len); + sum += len; + final int progress = (int) (sum * 1.0f / total * 100); + if (BaseOkHttpConfig.getInstance().isDebugMode() && BaseOkHttpConfig.getInstance().isDetailsLogs()) { + if (oldDownloadProgress != progress) { + LockLog.logI(">>>", "下载中:" + progress); + oldDownloadProgress = progress; } } + runOnMain(new Runnable() { + @Override + public void run() { + onDownloadListener.onDownloading(progress); + } + }); } - }); - } catch (Exception e) { - - } + fos.flush(); + is.close(); + fos.close(); + //下载完成 + if (BaseOkHttpConfig.getInstance().isDebugMode()) { + LockLog.Builder.create() + .i(">>>", "-------------------------------------") + .i(">>>", "下载完成:" + url) + .i(">>>", "存储文件:" + downloadFile.getAbsolutePath()) + .i(">>>", "=====================================") + .build(); + } + runOnMain(new Runnable() { + @Override + public void run() { + onDownloadListener.onDownloadSuccess(downloadFile); + } + }); + } + }); } private Timer timer; @@ -1098,14 +1077,14 @@ public class HttpRequest extends BaseOkHttp { if (isSending) { deleteRequestInfo(requestInfo); isSending = false; - if (BaseOkHttp.reserveServiceUrls != null && BaseOkHttp.reserveServiceUrls.length != 0) { - if (DEBUGMODE) { + if (BaseOkHttpConfig.getInstance().getReserveServiceUrls() != null && BaseOkHttpConfig.getInstance().getReserveServiceUrls().length != 0) { + if (BaseOkHttpConfig.getInstance().isDebugMode()) { LockLog.Builder logBuilder = LockLog.Builder.create() - .e(">>>", "服务器:" + BaseOkHttp.serviceUrl + "请求超时 ×"); - if (reserveUrlIndex != BaseOkHttp.reserveServiceUrls.length) { - BaseOkHttp.serviceUrl = BaseOkHttp.reserveServiceUrls[reserveUrlIndex]; + .e(">>>", "服务器:" + BaseOkHttpConfig.getInstance().getServiceUrl() + "请求超时 ×"); + if (reserveUrlIndex != BaseOkHttpConfig.getInstance().getReserveServiceUrls().length) { + BaseOkHttpConfig.getInstance().setServiceUrl(BaseOkHttpConfig.getInstance().getReserveServiceUrls()[reserveUrlIndex]); reserveUrlIndex++; - logBuilder.e(">>>", "尝试更换为备用地址后重试:" + BaseOkHttp.serviceUrl); + logBuilder.e(">>>", "尝试更换为备用地址后重试:" + BaseOkHttpConfig.getInstance().getServiceUrl()); send(); logBuilder.e(">>>", "====================================="); logBuilder.build(); @@ -1118,7 +1097,7 @@ public class HttpRequest extends BaseOkHttp { } } else { - if (DEBUGMODE) { + if (BaseOkHttpConfig.getInstance().isDebugMode()) { LockLog.Builder.create() .e(">>>", "请求超时 ×") .e(">>>", "=====================================") @@ -1129,12 +1108,12 @@ public class HttpRequest extends BaseOkHttp { runOnMain(new Runnable() { @Override public void run() { - if (responseInterceptListener == null) { + if (BaseOkHttpConfig.getInstance().getResponseInterceptListener() == null) { if (responseListener != null) { responseListener.response(null, new TimeOutException()); } } else { - if (responseInterceptListener.response(context.get(), url, null, new TimeOutException())) { + if (BaseOkHttpConfig.getInstance().getResponseInterceptListener().response(context.get(), url, null, new TimeOutException())) { if (responseListener != null) { responseListener.response(null, new TimeOutException()); } @@ -1159,11 +1138,11 @@ public class HttpRequest extends BaseOkHttp { .hostnameVerifier(new HostnameVerifier() { @Override public boolean verify(String hostname, SSLSession session) { - if (DEBUGMODE) { + if (BaseOkHttpConfig.getInstance().isDebugMode()) { LockLog.logI("<<<", "hostnameVerifier: " + hostname); } - if (httpsVerifyServiceUrl) { - if (serviceUrl.contains(hostname)) { + if (BaseOkHttpConfig.getInstance().isHttpsVerifyServiceUrl()) { + if (BaseOkHttpConfig.getInstance().getServiceUrl().contains(hostname)) { return true; } else { return false; @@ -1173,19 +1152,19 @@ public class HttpRequest extends BaseOkHttp { } } }) - .cache(BaseOkHttp.requestCache ? new Cache(sdcache.getAbsoluteFile(), cacheSize) : null); + .cache(BaseOkHttpConfig.getInstance().isRequestCache() ? new Cache(sdcache.getAbsoluteFile(), cacheSize) : null); if (certificates != null) { builder.sslSocketFactory(getSSLSocketFactory(certificates)); } if (proxy != null) { builder.proxy(proxy); } - if (autoSaveCookies) { + if (BaseOkHttpConfig.getInstance().isAutoSaveCookies()) { builder.cookieJar(new CookieJar() { @Override public void saveFromResponse(HttpUrl url, List cookies) { cookieStore.put(url, cookies); - if (DEBUGMODE) { + if (BaseOkHttpConfig.getInstance().isDebugMode()) { for (Cookie cookie : cookies) { LockLog.logI("<<<", "saveCookie: " + cookie.name() + " path:" + cookie.path()); } @@ -1202,8 +1181,8 @@ public class HttpRequest extends BaseOkHttp { if (customOkHttpClientBuilder != null) { builder = customOkHttpClientBuilder.customBuilder(builder); } - if (BaseOkHttp.globalCustomOkHttpClientBuilder != null) { - builder = BaseOkHttp.globalCustomOkHttpClientBuilder.customBuilder(this, builder); + if (BaseOkHttpConfig.getInstance().getGlobalCustomOkHttpClientBuilder() != null) { + builder = BaseOkHttpConfig.getInstance().getGlobalCustomOkHttpClientBuilder().customBuilder(this, builder); } okHttpClient = builder.build(); } @@ -1505,7 +1484,7 @@ public class HttpRequest extends BaseOkHttp { * @return HttpRequest */ public HttpRequest setCookie(String cookie) { - this.cookieStr = cookieStr; + this.cookieStr = cookie; return this; } @@ -1544,7 +1523,7 @@ public class HttpRequest extends BaseOkHttp { } private void runOnMain(Runnable runnable) { - if (context == null || context.get() == null) { + if (context == null || context.get() == null || runnable==null) { return; } @@ -1571,7 +1550,7 @@ public class HttpRequest extends BaseOkHttp { } } - if (DEBUGMODE && DETAILSLOGS) { + if (BaseOkHttpConfig.getInstance().isDebugMode() && BaseOkHttpConfig.getInstance().isDetailsLogs()) { LockLog.logI(">>>", "context 不是 Activity,本次请求在异步线程返回 >>>"); } runnable.run(); diff --git a/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/listener/JsonResponseListener.java b/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/listener/JsonResponseListener.java index e8e9b4d..11f9fd6 100644 --- a/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/listener/JsonResponseListener.java +++ b/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/listener/JsonResponseListener.java @@ -14,7 +14,7 @@ public abstract class JsonResponseListener implements BaseResponseListener { @Override public void response(Object response, Exception error) { - if (error == null) { + if (response != null || error == null) { JsonMap data = new JsonMap(response.toString()); if (data != null && !data.isEmpty()) { onResponse(data, error); diff --git a/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/BaseOkHttp.java b/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/BaseOkHttp.java index e20421f..7cb7e31 100644 --- a/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/BaseOkHttp.java +++ b/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/BaseOkHttp.java @@ -1,13 +1,6 @@ package com.kongzue.baseokhttp.util; -import com.kongzue.baseokhttp.listener.*; - -import okhttp3.Cookie; -import okhttp3.HttpUrl; - -import java.net.Proxy; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; /** @@ -41,142 +34,22 @@ public class BaseOkHttp { */ public static final int DOWNLOAD = 4; - /** - * 是否开启调试模式 - */ - public static boolean DEBUGMODE = false; - - /** - * 超时时长(单位:秒) - */ - public static int TIME_OUT_DURATION = 10; - - /** - * 默认服务器地址 - */ - public static String serviceUrl = ""; - - /** - * Https请求需要传入Assets目录下的证书文件名称 - */ - public static String SSLInAssetsFileName; - - /** - * Https请求是否需要Hostname验证,请保证serviceUrl中即Hostname地址 - */ - public static boolean httpsVerifyServiceUrl = false; - - /** - * 全局拦截器 - */ - public static BaseResponseInterceptListener responseInterceptListener; - - /** - * 全局参数拦截器 - */ - public static ParameterInterceptListener parameterInterceptListener; - - /** - * 全局Header拦截器 - */ - public static HeaderInterceptListener headerInterceptListener; - - /** - * 全局请求头 - */ - public static Parameter overallHeader; - - /** - * 全局参数 - */ - public static Parameter overallParameter; - - /** - * WebSocket自动重连步长(单位:秒) - */ - public static int websocketReconnectInterval = 10; - - /** - * WebSocket最大重连间隔(单位:秒) - */ - public static int websocketReconnectTime = 120; - - /** - * 自动缓存 Cookies - */ - public static boolean autoSaveCookies; - - /** - * 已存储的 Cookie 队列 - */ - protected HashMap> cookieStore = new HashMap<>(); - - /** - * 容灾地址 - */ - public static String[] reserveServiceUrls; - - /** - * 是否开启详细日志信息(下载、线程提升信息) - */ - public static boolean DETAILSLOGS = false; - - /** - * 全局代理设置 - */ - public static Proxy proxy; - - /** - * 禁止重复请求 - */ - public static boolean disallowSameRequest; - - /** - * 缓存请求 - */ - public static boolean requestCache = true; - - /** - * 全局自定义 OkHttpClient - */ - public static GlobalCustomOkHttpClient globalCustomOkHttpClient; - - /** - * 全局自定义 OkHttpClientBuilder - */ - public static GlobalCustomOkHttpClientBuilder globalCustomOkHttpClientBuilder; - - /** - * cleanSameRequestList - */ public static void cleanSameRequestList() { requestInfoList = new ArrayList<>(); } private static List requestInfoList; - /** - * addRequestInfo - * - * @param requestInfo requestInfo - */ protected void addRequestInfo(RequestInfo requestInfo) { synchronized (BaseOkHttp.class) { if (requestInfoList == null) { requestInfoList = new ArrayList<>(); } - if (DEBUGMODE) { - LockLog.logI(">>>", "addRequestInfo: " + requestInfo); - } + if (BaseOkHttpConfig.getInstance().isDebugMode()) LockLog.logI(">>>", "addRequestInfo: " + requestInfo); requestInfoList.add(requestInfo); } } - /** - * deleteRequestInfo - * - * @param requestInfo requestInfo - */ protected void deleteRequestInfo(RequestInfo requestInfo) { synchronized (BaseOkHttp.class) { if (requestInfoList == null || requestInfoList.isEmpty() || requestInfo == null) { @@ -186,26 +59,17 @@ public class BaseOkHttp { } } - /** - * equalsRequestInfo - * - * @param requestInfo requestInfo - * @return boolean - */ protected boolean equalsRequestInfo(RequestInfo requestInfo) { synchronized (BaseOkHttp.class) { if (requestInfoList == null || requestInfoList.isEmpty()) { - if (DEBUGMODE) { - LockLog.logI(">>>", "requestInfoList: null"); - } + if (BaseOkHttpConfig.getInstance().isDebugMode()) LockLog.logI(">>>", "requestInfoList: null"); return false; } for (RequestInfo requestInfo1 : requestInfoList) { - if (DEBUGMODE) { + if (BaseOkHttpConfig.getInstance().isDebugMode()) LockLog.logI(">>>", "equalsRequestInfo: " + requestInfo1); - } if (requestInfo1.equals(requestInfo)) { - if (DEBUGMODE) { + if (BaseOkHttpConfig.getInstance().isDebugMode()) { LockLog.logI(">>>", "发生重复请求"); } return true; diff --git a/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/BaseOkHttpConfig.java b/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/BaseOkHttpConfig.java new file mode 100644 index 0000000..c07ace9 --- /dev/null +++ b/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/BaseOkHttpConfig.java @@ -0,0 +1,561 @@ +package com.kongzue.baseokhttp.util; + +import com.kongzue.baseokhttp.listener.*; +import okhttp3.Cookie; +import okhttp3.HttpUrl; + +import java.net.Proxy; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +/** + * Author: @Kongzue + * Github: https://github.com/kongzue/ + * Homepage: http://kongzue.com/ + * Mail: myzcxhh@live.cn + * CreateTime: 2018/12/5 17:48 + */ +public class BaseOkHttpConfig { + + private volatile static BaseOkHttpConfig instance; + + /** + * 是否开启调试模式 + */ + private boolean debugMode = false; + + /** + * 超时时长(单位:秒) + */ + private int timeOutDuration = 10; + + /** + * 默认服务器地址 + */ + private String serviceUrl = ""; + + /** + * Https请求需要传入Assets目录下的证书文件名称 + */ + private String SSLInAssetsFileName; + + /** + * Https请求是否需要Hostname验证,请保证serviceUrl中即Hostname地址 + */ + private boolean httpsVerifyServiceUrl = false; + + /** + * 全局拦截器 + */ + private BaseResponseInterceptListener responseInterceptListener; + + /** + * 全局参数拦截器 + */ + private ParameterInterceptListener parameterInterceptListener; + + /** + * 全局Header拦截器 + */ + private HeaderInterceptListener headerInterceptListener; + + /** + * 全局请求头 + */ + private Parameter overallHeader; + + /** + * 全局参数 + */ + private Parameter overallParameter; + + /** + * WebSocket自动重连步长(单位:秒) + */ + private int websocketReconnectInterval = 10; + + /** + * WebSocket最大重连间隔(单位:秒) + */ + private int websocketReconnectTime = 120; + + /** + * 自动缓存 Cookies + */ + private boolean autoSaveCookies; + + /** + * 容灾地址 + */ + private String[] reserveServiceUrls; + + /** + * 是否开启详细日志信息(下载、线程提升信息) + */ + private boolean detailsLogs = false; + + /** + * 全局代理设置 + */ + private Proxy proxy; + + /** + * 禁止重复请求 + */ + private boolean disallowSameRequest; + + /** + * 缓存请求 + */ + private boolean requestCache = true; + + /** + * 全局自定义 OkHttpClient + */ + private GlobalCustomOkHttpClient globalCustomOkHttpClient; + + /** + * 全局自定义 OkHttpClientBuilder + */ + private GlobalCustomOkHttpClientBuilder globalCustomOkHttpClientBuilder; + + /** + * getSSLInAssetsFileName + * + * @return String + */ + public String getSSLInAssetsFileName() { + return SSLInAssetsFileName; + } + + /** + * setSSLInAssetsFileName + * + * @param SSLInAssetsFileName SSLInAssetsFileName + */ + public void setSSLInAssetsFileName(String SSLInAssetsFileName) { + this.SSLInAssetsFileName = SSLInAssetsFileName; + } + + /** + * getParameterInterceptListener + * + * @return ParameterInterceptListener + */ + public ParameterInterceptListener getParameterInterceptListener() { + return parameterInterceptListener; + } + + /** + * setParameterInterceptListener + * + * @param parameterInterceptListener parameterInterceptListener + */ + public void setParameterInterceptListener(ParameterInterceptListener parameterInterceptListener) { + this.parameterInterceptListener = parameterInterceptListener; + } + + /** + * getHeaderInterceptListener + * + * @return HeaderInterceptListener + */ + public HeaderInterceptListener getHeaderInterceptListener() { + return headerInterceptListener; + } + + /** + * setHeaderInterceptListener + * + * @param headerInterceptListener headerInterceptListener + */ + public void setHeaderInterceptListener(HeaderInterceptListener headerInterceptListener) { + this.headerInterceptListener = headerInterceptListener; + } + + /** + * getOverallHeader + * + * @return Parameter + */ + public Parameter getOverallHeader() { + return overallHeader; + } + + /** + * setOverallHeader + * + * @param overallHeader overallHeader + */ + public void setOverallHeader(Parameter overallHeader) { + this.overallHeader = overallHeader; + } + + /** + * getOverallParameter + * + * @return Parameter + */ + public Parameter getOverallParameter() { + return overallParameter; + } + + /** + * setOverallParameter + * + * @param overallParameter overallParameter + */ + public void setOverallParameter(Parameter overallParameter) { + this.overallParameter = overallParameter; + } + + /** + * boolean + * + * @return isAutoSaveCookies + */ + public boolean isAutoSaveCookies() { + return autoSaveCookies; + } + + /** + * setAutoSaveCookies + * + * @param autoSaveCookies autoSaveCookies + */ + public void setAutoSaveCookies(boolean autoSaveCookies) { + this.autoSaveCookies = autoSaveCookies; + } + + /** + * getProxy + * + * @return Proxy + */ + public Proxy getProxy() { + return proxy; + } + + /** + * setProxy + * + * @param proxy proxy + */ + public void setProxy(Proxy proxy) { + this.proxy = proxy; + } + + /** + * isDisallowSameRequest + * + * @return boolean + */ + public boolean isDisallowSameRequest() { + return disallowSameRequest; + } + + /** + * setDisallowSameRequest + * + * @param disallowSameRequest disallowSameRequest + */ + public void setDisallowSameRequest(boolean disallowSameRequest) { + this.disallowSameRequest = disallowSameRequest; + } + + /** + * getGlobalCustomOkHttpClient + * + * @return GlobalCustomOkHttpClient + */ + public GlobalCustomOkHttpClient getGlobalCustomOkHttpClient() { + return globalCustomOkHttpClient; + } + + /** + * setGlobalCustomOkHttpClient + * + * @param globalCustomOkHttpClient globalCustomOkHttpClient + */ + public void setGlobalCustomOkHttpClient(GlobalCustomOkHttpClient globalCustomOkHttpClient) { + this.globalCustomOkHttpClient = globalCustomOkHttpClient; + } + + /** + * getGlobalCustomOkHttpClientBuilder + * + * @return GlobalCustomOkHttpClientBuilder + */ + public GlobalCustomOkHttpClientBuilder getGlobalCustomOkHttpClientBuilder() { + return globalCustomOkHttpClientBuilder; + } + + /** + * setGlobalCustomOkHttpClientBuilder + * + * @param globalCustomOkHttpClientBuilder globalCustomOkHttpClientBuilder + */ + public void setGlobalCustomOkHttpClientBuilder(GlobalCustomOkHttpClientBuilder globalCustomOkHttpClientBuilder) { + this.globalCustomOkHttpClientBuilder = globalCustomOkHttpClientBuilder; + } + + /** + * cleanSameRequestList + */ + public static void cleanSameRequestList() { + requestInfoList = new ArrayList<>(); + } + + private static List requestInfoList; + + /** + * getInstance + * + * @return BaseOkHttpConfig + */ + public static BaseOkHttpConfig getInstance() { + if (instance == null) { + synchronized (BaseOkHttp.class) { + if (instance == null) { + instance = new BaseOkHttpConfig(); + } + } + } + return instance; + } + + /** + * getWebsocketReconnectInterval + * + * @return int + */ + public int getWebsocketReconnectInterval() { + return websocketReconnectInterval; + } + + /** + * setWebsocketReconnectInterval + * + * @param websocketReconnectInterval websocketReconnectInterval + */ + public void setWebsocketReconnectInterval(int websocketReconnectInterval) { + this.websocketReconnectInterval = websocketReconnectInterval; + } + + /** + * getResponseInterceptListener + * + * @return BaseResponseInterceptListener + */ + public BaseResponseInterceptListener getResponseInterceptListener() { + return responseInterceptListener; + } + + /** + * setResponseInterceptListener + * + * @param responseInterceptListener responseInterceptListener + */ + public void setResponseInterceptListener(BaseResponseInterceptListener responseInterceptListener) { + this.responseInterceptListener = responseInterceptListener; + } + + /** + * isHttpsVerifyServiceUrl + * + * @return boolean + */ + public boolean isHttpsVerifyServiceUrl() { + return httpsVerifyServiceUrl; + } + + /** + * setHttpsVerifyServiceUrl + * + * @param httpsVerifyServiceUrl httpsVerifyServiceUrl + */ + public void setHttpsVerifyServiceUrl(boolean httpsVerifyServiceUrl) { + this.httpsVerifyServiceUrl = httpsVerifyServiceUrl; + } + + /** + * getReserveServiceUrls + * + * @return + */ + public String[] getReserveServiceUrls() { + return reserveServiceUrls.clone(); + } + + /** + * setReserveServiceUrls + * + * @param reserveServiceUrls reserveServiceUrls + */ + public void setReserveServiceUrls(String[] reserveServiceUrls) { + if (reserveServiceUrls != null) { + this.reserveServiceUrls = reserveServiceUrls.clone(); + } else { + this.reserveServiceUrls = null; + } + } + + /** + * getServiceUrl + * + * @return String + */ + public String getServiceUrl() { + return serviceUrl; + } + + /** + * setServiceUrl serviceUrl + * + * @param serviceUrl serviceUrl + */ + public void setServiceUrl(String serviceUrl) { + this.serviceUrl = serviceUrl; + } + + /** + * isRequestCache + * + * @return boolean + */ + public boolean isRequestCache() { + return requestCache; + } + + /** + * setRequestCache + * + * @param requestCache requestCache + */ + public void setRequestCache(boolean requestCache) { + this.requestCache = requestCache; + } + + /** + * getTimeOutDuration + * + * @return int + */ + public int getTimeOutDuration() { + return timeOutDuration; + } + + /** + * setTimeOutDuration + * + * @param timeOutDuration timeOutDuration + */ + public void setTimeOutDuration(int timeOutDuration) { + this.timeOutDuration = timeOutDuration; + } + + /** + * getWebsocketReconnectTime + * + * @return int + */ + public int getWebsocketReconnectTime() { + return websocketReconnectTime; + } + + /** + * setWebsocketReconnectTime + * + * @param websocketReconnectTime websocketReconnectTime + */ + public void setWebsocketReconnectTime(int websocketReconnectTime) { + this.websocketReconnectTime = websocketReconnectTime; + } + + /** + * isDetailsLogs + * + * @return boolean + */ + public boolean isDetailsLogs() { + return detailsLogs; + } + + /** + * setDetailsLogs + * + * @param detailsLogs detailsLogs + */ + public void setDetailsLogs(boolean detailsLogs) { + this.detailsLogs = detailsLogs; + } + + public boolean isDebugMode() { + return debugMode; + } + + public void setDebugMode(boolean debugMode) { + this.debugMode = debugMode; + } + + /** + * addRequestInfo + * + * @param requestInfo requestInfo + */ + protected void addRequestInfo(RequestInfo requestInfo) { + synchronized (BaseOkHttp.class) { + if (requestInfoList == null) { + requestInfoList = new ArrayList<>(); + } + if (debugMode) { + LockLog.logI(">>>", "addRequestInfo: " + requestInfo); + } + requestInfoList.add(requestInfo); + } + } + + /** + * deleteRequestInfo + * + * @param requestInfo requestInfo + */ + protected void deleteRequestInfo(RequestInfo requestInfo) { + synchronized (BaseOkHttp.class) { + if (requestInfoList == null || requestInfoList.isEmpty() || requestInfo == null) { + return; + } + requestInfoList.remove(requestInfo); + } + } + + /** + * equalsRequestInfo + * + * @param requestInfo requestInfo + * @return boolean + */ + protected boolean equalsRequestInfo(RequestInfo requestInfo) { + synchronized (BaseOkHttp.class) { + if (requestInfoList == null || requestInfoList.isEmpty()) { + if (debugMode) { + LockLog.logI(">>>", "requestInfoList: null"); + } + return false; + } + for (RequestInfo requestInfo1 : requestInfoList) { + if (debugMode) { + LockLog.logI(">>>", "equalsRequestInfo: " + requestInfo1); + } + if (requestInfo1.equals(requestInfo)) { + if (debugMode) { + LockLog.logI(">>>", "发生重复请求"); + } + return true; + } + } + return false; + } + } +} diff --git a/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/JsonFormat.java b/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/JsonFormat.java index 0e3e078..d528b9a 100644 --- a/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/JsonFormat.java +++ b/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/JsonFormat.java @@ -7,8 +7,6 @@ import org.json.JSONObject; import java.util.ArrayList; import java.util.List; -import static com.kongzue.baseokhttp.util.BaseOkHttp.DEBUGMODE; - /** * Author: @Kongzue * Github: https://github.com/kongzue/ @@ -25,7 +23,7 @@ public class JsonFormat { } public static List formatJson(String msg, int e) { - if (!DEBUGMODE) return null; + if (!BaseOkHttpConfig.getInstance().isDebugMode()) return null; String message; try { if (msg.startsWith("{")) { diff --git a/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/JsonList.java b/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/JsonList.java index b8575f6..74d5d8c 100644 --- a/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/JsonList.java +++ b/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/JsonList.java @@ -4,8 +4,6 @@ import org.json.JSONArray; import java.util.List; -import static com.kongzue.baseokhttp.util.JsonMap.preParsing; - /** * JsonList * Author: @Kongzue @@ -34,7 +32,7 @@ public class JsonList extends SimpleArrayList { grow(jsonArray.length()); for (int i = 0; i < jsonArray.length(); i++) { String o = String.valueOf(jsonArray.get(i)); - if (preParsing) { + if (JsonMapConfig.getInstance().isPreParsing()) { if (o.startsWith("{") && o.endsWith("}")) { JsonMap value = new JsonMap(o); set(value.isEmpty() ? o : value); @@ -251,7 +249,7 @@ public class JsonList extends SimpleArrayList { result = Float.parseFloat(get(index) + ""); } catch (Exception e) { } - return emptyValue; + return result; } /** diff --git a/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/JsonMap.java b/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/JsonMap.java index c36cef2..95407e0 100644 --- a/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/JsonMap.java +++ b/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/JsonMap.java @@ -20,20 +20,6 @@ import java.util.concurrent.ConcurrentHashMap; */ public class JsonMap extends ConcurrentHashMap { - /** - * 预解析开关 - *

- * 开启此功能将在通过 String 文本创建 JsonMap/JsonList 的一开始就对所有内容进行逐级解析, - * 可以有效增加解析速度,例如在网络请求的异步线程先解析后返回主线程即可直接读取内部的值。 - * 但这有可能带来一些问题: - * 例如对于文本 "objData":"{sdf123R.4:98}",该值可能在预解析时由于 org.json 的影响, - * 被认为是一个 JsonObject,此时若 .getString("objData")则可能返回错误的结果: - * {"sdf123R.4":"98"} - * 值的内容被添加了引号,这显然不符合预期。 - * 关闭预解析开关可以避免此问题,但也会带来解析过程性能的损失。 - */ - public static boolean preParsing = true; - /** * 创建一个空的 JsonMap 对象 */ @@ -53,7 +39,7 @@ public class JsonMap extends ConcurrentHashMap { while (keys.hasNext()) { String key = keys.next() + ""; String value = jsonObject.optString(key); - if (preParsing) { + if (JsonMapConfig.getInstance().isPreParsing()) { if (value.startsWith("{") && value.endsWith("}")) { JsonMap object = new JsonMap(value); put(key, object.isEmpty() ? value : object); @@ -78,10 +64,10 @@ public class JsonMap extends ConcurrentHashMap { * @param map Map 实例化对象 */ public JsonMap(Map map) { - Set keys = map.keySet(); - for (String key : keys) { - Object value = map.get(key); - set(key, value); + Iterator entries = map.entrySet().iterator(); + while (entries.hasNext()) { + Map.Entry entry = entries.next(); + set((String) entry.getKey(), entry.getValue()); } } @@ -273,7 +259,7 @@ public class JsonMap extends ConcurrentHashMap { result = Float.parseFloat(get(key) + ""); } catch (Exception e) { } - return emptyValue; + return result; } /** diff --git a/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/JsonMapConfig.java b/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/JsonMapConfig.java new file mode 100644 index 0000000..dad0b78 --- /dev/null +++ b/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/JsonMapConfig.java @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.kongzue.baseokhttp.util; + +public class JsonMapConfig { + + private volatile static JsonMapConfig instance; + + + /** + * 预解析开关 + *

+ * 开启此功能将在通过 String 文本创建 JsonMap/JsonList 的一开始就对所有内容进行逐级解析, + * 可以有效增加解析速度,例如在网络请求的异步线程先解析后返回主线程即可直接读取内部的值。 + * 但这有可能带来一些问题: + * 例如对于文本 "objData":"{sdf123R.4:98}",该值可能在预解析时由于 org.json 的影响, + * 被认为是一个 JsonObject,此时若 .getString("objData")则可能返回错误的结果: + * {"sdf123R.4":"98"} + * 值的内容被添加了引号,这显然不符合预期。 + * 关闭预解析开关可以避免此问题,但也会带来解析过程性能的损失。 + */ + private boolean preParsing = true; + + public static JsonMapConfig getInstance() { + if (instance == null) { + synchronized (JsonMapConfig.class) { + if (instance == null) { + instance = new JsonMapConfig(); + } + } + } + return instance; + } + + public boolean isPreParsing() { + return preParsing; + } + + public void setPreParsing(boolean preParsing) { + this.preParsing = preParsing; + } +} diff --git a/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/LockLog.java b/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/LockLog.java index 35c2d3a..1c7adda 100644 --- a/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/LockLog.java +++ b/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/LockLog.java @@ -71,34 +71,35 @@ public class LockLog { private static Thread logThread; private static void logPrint() { - if (logThread == null) { - logThread = new Thread() { - @Override - public void run() { - if (logS != null) { - while (!logS.isEmpty()) { - LogBody log = logS.get(0); - if (log != null) { - switch (log.getLevel()) { - case INFO: - HiLog.info(Logger.LABEL, log.getLog()); - break; - case ERROR: - HiLog.error(Logger.LABEL, log.getLog()); - break; + synchronized (LockLog.class){ + if (logThread == null) { + logThread = new Thread() { + @Override + public void run() { + if (logS != null) { + while (!logS.isEmpty()) { + LogBody log = logS.get(0); + if (log != null) { + switch (log.getLevel()) { + case INFO: + HiLog.info(Logger.LABEL, log.getLog()); + break; + case ERROR: + HiLog.error(Logger.LABEL, log.getLog()); + break; + } + logS.remove(log); } - logS.remove(log); } + logThread = null; } - logThread = null; } - } - }; - logThread.start(); + }; + logThread.start(); + } } } - public static class LogBody { public enum LEVEL { diff --git a/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/Parameter.java b/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/Parameter.java index 4668835..a59b6de 100644 --- a/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/Parameter.java +++ b/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/Parameter.java @@ -19,10 +19,15 @@ public class Parameter extends TreeMap { public String toParameterString() { String result = ""; + StringBuilder sb = new StringBuilder(); if (!entrySet().isEmpty()) { for (java.util.Map.Entry entry : entrySet()) { - result = result + entry.getKey() + "=" + entry.getValue() + "&"; + sb.append(entry.getKey()); + sb.append("="); + sb.append(entry.getValue()); + sb.append("&"); } + result = sb.toString(); if (result.endsWith("&")) { result = result.substring(0, result.length() - 1); } @@ -175,7 +180,7 @@ public class Parameter extends TreeMap { result = Float.parseFloat(get(key) + ""); } catch (Exception e) { } - return emptyValue; + return result; } private boolean isNull(String s) { diff --git a/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/RequestInfo.java b/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/RequestInfo.java index 14c4ec5..b039d27 100644 --- a/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/RequestInfo.java +++ b/baseokhttp_v3/src/main/java/com/kongzue/baseokhttp/util/RequestInfo.java @@ -1,5 +1,7 @@ package com.kongzue.baseokhttp.util; +import java.util.Objects; + /** * RequestInfo * @@ -77,21 +79,18 @@ public class RequestInfo { return this; } - /** - * equals - * - * @param requestInfo requestInfo - * @return boolean - */ - public boolean equals(RequestInfo requestInfo) { - if (this == requestInfo) return true; - if (requestInfo == null || getClass() != requestInfo.getClass()) return false; - return equalsString(url, requestInfo.url) && equalsString(parameter, requestInfo.parameter); + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + RequestInfo that = (RequestInfo) o; + return Objects.equals(url, that.url) && + Objects.equals(parameter, that.parameter); } - private boolean equalsString(String a, String b) { - if (a == null || b == null) return false; - return a.equals(b); + @Override + public int hashCode() { + return Objects.hash(url, parameter); } @Override diff --git a/baseokhttp_v3/src/main/java/libcore/net/MimeTypeMap.java b/baseokhttp_v3/src/main/java/libcore/net/MimeTypeMap.java index a6a853d..59039e1 100644 --- a/baseokhttp_v3/src/main/java/libcore/net/MimeTypeMap.java +++ b/baseokhttp_v3/src/main/java/libcore/net/MimeTypeMap.java @@ -31,43 +31,6 @@ public class MimeTypeMap { private MimeTypeMap() { } - /** - * Returns the file extension or an empty string if there is no - * extension. This method is a convenience method for obtaining the - * extension of a url and has undefined results for other Strings. - * @param url - * @return The file extension of the given url. - */ - public static String getFileExtensionFromUrl(String url) { - if (url!=null ||url.length()>0) { - int fragment = url.lastIndexOf('#'); - if (fragment > 0) { - url = url.substring(0, fragment); - } - - int query = url.lastIndexOf('?'); - if (query > 0) { - url = url.substring(0, query); - } - - int filenamePos = url.lastIndexOf('/'); - String filename = - 0 <= filenamePos ? url.substring(filenamePos + 1) : url; - - // if the filename contains special characters, we don't - // consider it valid for our matching purposes: - if (!filename.isEmpty() && - Pattern.matches("[a-zA-Z_0-9\\.\\-\\(\\)\\%]+", filename)) { - int dotPos = filename.lastIndexOf('.'); - if (0 <= dotPos) { - return filename.substring(dotPos + 1); - } - } - } - - return ""; - } - /** * Return {@code true} if the given MIME type has an entry in the map. * @param mimeType A MIME type (i.e. text/plain) diff --git a/build.gradle b/build.gradle index da224be..3de139c 100644 --- a/build.gradle +++ b/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.huawei.ohos.app' ohos { - compileSdkVersion 5 + compileSdkVersion 6 defaultConfig { compatibleSdkVersion 5 } @@ -20,8 +20,8 @@ buildscript { jcenter() } dependencies { - classpath 'com.huawei.ohos:hap:2.4.4.2' - classpath 'com.huawei.ohos:decctest:1.0.0.6' + classpath 'com.huawei.ohos:hap:2.4.5.0' + classpath 'com.huawei.ohos:decctest:1.2.4.1' } } diff --git a/entry/build.gradle b/entry/build.gradle index 583827d..94d6b3e 100644 --- a/entry/build.gradle +++ b/entry/build.gradle @@ -1,7 +1,7 @@ apply plugin: 'com.huawei.ohos.hap' apply plugin: 'com.huawei.ohos.decctest' ohos { - compileSdkVersion 5 + compileSdkVersion 6 defaultConfig { compatibleSdkVersion 5 } diff --git a/entry/src/main/config.json b/entry/src/main/config.json index eee1b8e..e30d6a9 100644 --- a/entry/src/main/config.json +++ b/entry/src/main/config.json @@ -5,10 +5,6 @@ "version": { "code": 1, "name": "1.0" - }, - "apiVersion": { - "compatible": 5, - "target": 5 } }, "deviceConfig": { @@ -94,6 +90,7 @@ "icon": "$media:icon", "label": "$string:app_name", "type": "page", + "visible": false, "launchType": "standard" }, { @@ -102,6 +99,7 @@ "icon": "$media:icon", "label": "$string:app_name", "type": "page", + "visible": false, "launchType": "standard" }, { @@ -110,6 +108,7 @@ "icon": "$media:icon", "label": "$string:app_name", "type": "page", + "visible": false, "launchType": "standard" }, { @@ -118,6 +117,7 @@ "icon": "$media:icon", "label": "$string:app_name", "type": "page", + "visible": false, "launchType": "standard" }, { @@ -126,6 +126,7 @@ "icon": "$media:icon", "label": "$string:app_name", "type": "page", + "visible": false, "launchType": "standard" }, { @@ -134,6 +135,7 @@ "icon": "$media:icon", "label": "$string:app_name", "type": "page", + "visible": false, "launchType": "standard" }, { @@ -142,6 +144,7 @@ "icon": "$media:icon", "label": "$string:app_name", "type": "page", + "visible": false, "launchType": "standard" } ], diff --git a/entry/src/main/java/com/kongzue/baseokhttpv3/newslice/DeleteAbilitySlice.java b/entry/src/main/java/com/kongzue/baseokhttpv3/newslice/DeleteAbilitySlice.java index 9df663b..f862c64 100644 --- a/entry/src/main/java/com/kongzue/baseokhttpv3/newslice/DeleteAbilitySlice.java +++ b/entry/src/main/java/com/kongzue/baseokhttpv3/newslice/DeleteAbilitySlice.java @@ -5,9 +5,7 @@ import com.kongzue.baseokhttp.HttpRequest; import com.kongzue.baseokhttp.listener.JsonResponseListener; import com.kongzue.baseokhttp.listener.ParameterInterceptListener; import com.kongzue.baseokhttp.listener.ResponseInterceptListener; -import com.kongzue.baseokhttp.util.BaseOkHttp; -import com.kongzue.baseokhttp.util.JsonMap; -import com.kongzue.baseokhttp.util.Parameter; +import com.kongzue.baseokhttp.util.*; import com.kongzue.baseokhttpv3.ResourceTable; import com.kongzue.baseokhttpv3.util.JsonUtil; import ohos.aafwk.ability.AbilitySlice; @@ -45,13 +43,13 @@ public class DeleteAbilitySlice extends AbilitySlice { private void header() { - BaseOkHttp.parameterInterceptListener = new ParameterInterceptListener() { + BaseOkHttpConfig.getInstance().setParameterInterceptListener(new ParameterInterceptListener() { @Override public JsonMap onIntercept(Context context, String url, JsonMap o) { return null; } - }; - BaseOkHttp.responseInterceptListener = new ResponseInterceptListener() { + }); + BaseOkHttpConfig.getInstance().setResponseInterceptListener(new ResponseInterceptListener() { @Override public boolean onResponse(Context context, String url, String response, Exception error) { @@ -61,8 +59,9 @@ public class DeleteAbilitySlice extends AbilitySlice { return true; } } - }; - JsonMap.preParsing = true; + }); + + JsonMapConfig.getInstance().setPreParsing(true); } private void initView() { @@ -90,22 +89,19 @@ public class DeleteAbilitySlice extends AbilitySlice { public void onClick(Component component) { try { if (!TextUtils.isEmpty(biaodanurl.getText().toString())) { - Map params = null; + Map params = new HashMap<>(); if (!TextUtils.isEmpty(biaodaninput.getText().toString())) { String json = biaodaninput.getText().toString(); Map jsonObject = null; try { jsonObject = JsonUtil.jsonToMap(json); + for (Map.Entry entry : jsonObject.entrySet()) { + params.put(entry.getKey(), entry.getValue().toString()); + } } catch (Exception e) { e.printStackTrace(); } - params = new HashMap<>(); - - for (Map.Entry entry : jsonObject.entrySet()) { - params.put(entry.getKey(), entry.getValue().toString()); - } - } getbiaodan(biaodanurl.getText().toString(), params); @@ -147,7 +143,7 @@ public class DeleteAbilitySlice extends AbilitySlice { } private void getbiaodan(final String url, Map params) { - BaseOkHttp.SSLInAssetsFileName = null; + BaseOkHttpConfig.getInstance().setSSLInAssetsFileName(null); Parameter parameter = new Parameter(); if (null != params) { for (Map.Entry entry : params.entrySet()) { @@ -184,7 +180,7 @@ public class DeleteAbilitySlice extends AbilitySlice { } private void deleteJson(final String url, String json) { - BaseOkHttp.SSLInAssetsFileName = null; + BaseOkHttpConfig.getInstance().setSSLInAssetsFileName(null); Parameter header = new Parameter(); header.add("headerkey", cookie.getText()); diff --git a/entry/src/main/java/com/kongzue/baseokhttpv3/newslice/PostAbilitySlice.java b/entry/src/main/java/com/kongzue/baseokhttpv3/newslice/PostAbilitySlice.java index 4c364fc..7a576d3 100644 --- a/entry/src/main/java/com/kongzue/baseokhttpv3/newslice/PostAbilitySlice.java +++ b/entry/src/main/java/com/kongzue/baseokhttpv3/newslice/PostAbilitySlice.java @@ -6,9 +6,7 @@ import com.kongzue.baseokhttp.listener.JsonResponseListener; import com.kongzue.baseokhttp.listener.ParameterInterceptListener; import com.kongzue.baseokhttp.listener.ResponseInterceptListener; import com.kongzue.baseokhttp.listener.UploadProgressListener; -import com.kongzue.baseokhttp.util.BaseOkHttp; -import com.kongzue.baseokhttp.util.JsonMap; -import com.kongzue.baseokhttp.util.Parameter; +import com.kongzue.baseokhttp.util.*; import com.kongzue.baseokhttpv3.ResourceTable; import com.kongzue.baseokhttpv3.util.JsonUtil; import ohos.aafwk.ability.AbilitySlice; @@ -44,13 +42,13 @@ public class PostAbilitySlice extends AbilitySlice { private void header() { - BaseOkHttp.parameterInterceptListener = new ParameterInterceptListener() { + BaseOkHttpConfig.getInstance().setParameterInterceptListener(new ParameterInterceptListener() { @Override public JsonMap onIntercept(Context context, String url, JsonMap o) { return null; } - }; - BaseOkHttp.responseInterceptListener = new ResponseInterceptListener() { + }); + BaseOkHttpConfig.getInstance().setResponseInterceptListener(new ResponseInterceptListener() { @Override public boolean onResponse(Context context, String url, String response, Exception error) { @@ -61,9 +59,8 @@ public class PostAbilitySlice extends AbilitySlice { return true; } } - }; - JsonMap.preParsing = true; -// BaseOkHttp.DETAILSLOGS = true; + }); + JsonMapConfig.getInstance().setPreParsing(true); } @Override @@ -141,16 +138,15 @@ public class PostAbilitySlice extends AbilitySlice { Map jsonObject = null; try { jsonObject = JsonUtil.jsonToMap(json); + Map params = new HashMap<>(); + + for (Map.Entry entry : jsonObject.entrySet()) { + params.put(entry.getKey(), entry.getValue().toString()); + } + postEnqueue(biaodanFiledUrl.getText().toString(), params); } catch (Exception e) { e.printStackTrace(); } - Map params = new HashMap<>(); - - for (Map.Entry entry : jsonObject.entrySet()) { - params.put(entry.getKey(), entry.getValue().toString()); - } - postEnqueue(biaodanFiledUrl.getText().toString(), params); - } else { postEnqueue(biaodanFiledUrl.getText().toString(), null); @@ -194,7 +190,7 @@ public class PostAbilitySlice extends AbilitySlice { } private void getbiaodan(final String url, Map params) { - BaseOkHttp.SSLInAssetsFileName = null; + BaseOkHttpConfig.getInstance().setSSLInAssetsFileName(null); Parameter parameter = new Parameter(); if (null != params) { for (Map.Entry entry : params.entrySet()) { @@ -228,7 +224,7 @@ public class PostAbilitySlice extends AbilitySlice { private void postjson(final String url, String params) { - BaseOkHttp.SSLInAssetsFileName = null; + BaseOkHttpConfig.getInstance().setSSLInAssetsFileName(null); HttpRequest.JSONPOST(PostAbilitySlice.this, jsonFiledUrl.getText().toString(), params, new JsonResponseListener() { @@ -312,7 +308,7 @@ public class PostAbilitySlice extends AbilitySlice { } private void postbiaodan(final String url, Map params) { - BaseOkHttp.SSLInAssetsFileName = null; + BaseOkHttpConfig.getInstance().setSSLInAssetsFileName(null); Parameter parameter = new Parameter(); if (null != params) { for (Map.Entry entry : params.entrySet()) { diff --git a/entry/src/main/java/com/kongzue/baseokhttpv3/newslice/PutAbilitySlice.java b/entry/src/main/java/com/kongzue/baseokhttpv3/newslice/PutAbilitySlice.java index e99a8a7..24edb79 100644 --- a/entry/src/main/java/com/kongzue/baseokhttpv3/newslice/PutAbilitySlice.java +++ b/entry/src/main/java/com/kongzue/baseokhttpv3/newslice/PutAbilitySlice.java @@ -5,9 +5,7 @@ import com.kongzue.baseokhttp.HttpRequest; import com.kongzue.baseokhttp.listener.JsonResponseListener; import com.kongzue.baseokhttp.listener.ParameterInterceptListener; import com.kongzue.baseokhttp.listener.ResponseInterceptListener; -import com.kongzue.baseokhttp.util.BaseOkHttp; -import com.kongzue.baseokhttp.util.JsonMap; -import com.kongzue.baseokhttp.util.Parameter; +import com.kongzue.baseokhttp.util.*; import com.kongzue.baseokhttpv3.ResourceTable; import com.kongzue.baseokhttpv3.util.JsonUtil; import ohos.aafwk.ability.AbilitySlice; @@ -40,14 +38,13 @@ public class PutAbilitySlice extends AbilitySlice { } private void header() { - - BaseOkHttp.parameterInterceptListener = new ParameterInterceptListener() { + BaseOkHttpConfig.getInstance().setParameterInterceptListener(new ParameterInterceptListener() { @Override public JsonMap onIntercept(Context context, String url, JsonMap o) { return null; } - }; - BaseOkHttp.responseInterceptListener = new ResponseInterceptListener() { + }); + BaseOkHttpConfig.getInstance().setResponseInterceptListener(new ResponseInterceptListener() { @Override public boolean onResponse(Context context, String url, String response, Exception error) { @@ -57,8 +54,8 @@ public class PutAbilitySlice extends AbilitySlice { return true; } } - }; - JsonMap.preParsing = true; + }); + JsonMapConfig.getInstance().setPreParsing(true); } @@ -90,23 +87,20 @@ public class PutAbilitySlice extends AbilitySlice { try { if (!TextUtils.isEmpty(biaodanurl.getText().toString())) { - Map params = null; + Map params = new HashMap<>(); + ; if (!TextUtils.isEmpty(biaodaninput.getText().toString())) { String json = biaodaninput.getText().toString(); Map jsonObject = null; try { jsonObject = JsonUtil.jsonToMap(json); + for (Map.Entry entry : jsonObject.entrySet()) { + params.put(entry.getKey(), entry.getValue().toString()); + } } catch (Exception e) { e.printStackTrace(); } - params = new HashMap<>(); - - for (Map.Entry entry : jsonObject.entrySet()) { - params.put(entry.getKey(), entry.getValue().toString()); - } - } - getbiaodan(biaodanurl.getText().toString(), params); } else { ToastDialog toastDialog = new ToastDialog(PutAbilitySlice.this); @@ -142,7 +136,7 @@ public class PutAbilitySlice extends AbilitySlice { } private void getbiaodan(final String url, Map params) { - BaseOkHttp.SSLInAssetsFileName = null; + BaseOkHttpConfig.getInstance().setSSLInAssetsFileName(null); Parameter parameter = new Parameter(); if (null != params) { for (Map.Entry entry : params.entrySet()) { @@ -152,7 +146,7 @@ public class PutAbilitySlice extends AbilitySlice { Parameter header = new Parameter(); header.add("testkey", cookie.getText()); // progressDialog = ProgressDialog.show(MainAbilitySlice.this, "请稍候", "请求中..."); - HttpRequest.PUT(PutAbilitySlice.this, url,header, + HttpRequest.PUT(PutAbilitySlice.this, url, header, parameter, new JsonResponseListener() { @Override public void onResponse(JsonMap main, Exception error) { @@ -186,7 +180,7 @@ public class PutAbilitySlice extends AbilitySlice { } private void deleteJson(final String url, String json) { - BaseOkHttp.SSLInAssetsFileName = null; + BaseOkHttpConfig.getInstance().setSSLInAssetsFileName(null); Parameter header = new Parameter(); header.add("test1", cookie.getText()); diff --git a/entry/src/main/java/com/kongzue/baseokhttpv3/newslice/SetAbilitySlice.java b/entry/src/main/java/com/kongzue/baseokhttpv3/newslice/SetAbilitySlice.java index 7160aab..002f1e3 100644 --- a/entry/src/main/java/com/kongzue/baseokhttpv3/newslice/SetAbilitySlice.java +++ b/entry/src/main/java/com/kongzue/baseokhttpv3/newslice/SetAbilitySlice.java @@ -1,6 +1,7 @@ package com.kongzue.baseokhttpv3.newslice; import com.kongzue.baseokhttp.util.BaseOkHttp; +import com.kongzue.baseokhttp.util.BaseOkHttpConfig; import com.kongzue.baseokhttp.util.Parameter; import com.kongzue.baseokhttpv3.ResourceTable; import com.kongzue.baseokhttpv3.util.JsonUtil; @@ -39,24 +40,26 @@ public class SetAbilitySlice extends AbilitySlice { TextField url2 = (TextField) findComponentById(ResourceTable.Id_url2); Text save = (Text) findComponentById(ResourceTable.Id_save); - if (BaseOkHttp.reserveServiceUrls != null) { - String str2 = ""; - for (String str : BaseOkHttp.reserveServiceUrls) { - str2 += str + ","; + StringBuffer sb = new StringBuffer(); + if (BaseOkHttpConfig.getInstance().getReserveServiceUrls() != null) { + for (String str : BaseOkHttpConfig.getInstance().getReserveServiceUrls()) { + sb.append(str); + sb.append(","); } - str2 = str2.substring(0,str2.length()-1); - url2.setText(str2); + String str = sb.toString(); + str = str.substring(0,str.length()-1); + url2.setText(str); } - if (BaseOkHttp.serviceUrl == null || BaseOkHttp.serviceUrl.equals("")) { - BaseOkHttp.serviceUrl = "https://www.fastmock.site"; + if (BaseOkHttpConfig.getInstance().getServiceUrl() == null || BaseOkHttpConfig.getInstance().getServiceUrl().equals("")) { + BaseOkHttpConfig.getInstance().setServiceUrl("https://www.fastmock.site"); } - url.setText(BaseOkHttp.serviceUrl); + url.setText(BaseOkHttpConfig.getInstance().getServiceUrl()); save.setClickedListener(new Component.ClickedListener() { @Override public void onClick(Component component) { - BaseOkHttp.serviceUrl = url.getText(); + BaseOkHttpConfig.getInstance().setServiceUrl(url.getText()); ToastDialog toastDialog = new ToastDialog(SetAbilitySlice.this); toastDialog.setText("ok").setDuration(1000).show(); @@ -67,8 +70,8 @@ public class SetAbilitySlice extends AbilitySlice { yes.setClickedListener(new Component.ClickedListener() { @Override public void onClick(Component component) { - BaseOkHttp.DEBUGMODE = true; - BaseOkHttp.DETAILSLOGS = true; + BaseOkHttpConfig.getInstance().setDebugMode(true); + BaseOkHttpConfig.getInstance().setDetailsLogs(true); ToastDialog toastDialog = new ToastDialog(SetAbilitySlice.this); toastDialog.setText("ok").setDuration(1000).show(); @@ -78,8 +81,8 @@ public class SetAbilitySlice extends AbilitySlice { no.setClickedListener(new Component.ClickedListener() { @Override public void onClick(Component component) { - BaseOkHttp.DEBUGMODE = false; - BaseOkHttp.DETAILSLOGS = false; + BaseOkHttpConfig.getInstance().setDebugMode(false); + BaseOkHttpConfig.getInstance().setDetailsLogs(false); ToastDialog toastDialog = new ToastDialog(SetAbilitySlice.this); toastDialog.setText("ok").setDuration(1000).show(); @@ -90,7 +93,7 @@ public class SetAbilitySlice extends AbilitySlice { Repeatedyes.setClickedListener(new Component.ClickedListener() { @Override public void onClick(Component component) { - BaseOkHttp.disallowSameRequest = true; + BaseOkHttpConfig.getInstance().setDisallowSameRequest(true); ToastDialog toastDialog = new ToastDialog(SetAbilitySlice.this); toastDialog.setText("ok").setDuration(1000).show(); @@ -100,7 +103,7 @@ public class SetAbilitySlice extends AbilitySlice { Repeatedno.setClickedListener(new Component.ClickedListener() { @Override public void onClick(Component component) { - BaseOkHttp.disallowSameRequest = false; + BaseOkHttpConfig.getInstance().setDisallowSameRequest(false); ToastDialog toastDialog = new ToastDialog(SetAbilitySlice.this); toastDialog.setText("ok").setDuration(1000).show(); @@ -110,10 +113,10 @@ public class SetAbilitySlice extends AbilitySlice { //设置全局请求头消息 cookie = (TextField) findComponentById(ResourceTable.Id_cookie_input); - if (BaseOkHttp.overallHeader == null) { + if (BaseOkHttpConfig.getInstance().getOverallHeader() == null) { cookie.setText("{\"cookie\": \"177c070d1922f938ccee95b6bd04df0b\"}"); }else{ - cookie.setText(BaseOkHttp.overallHeader.toParameterJson().toString()); + cookie.setText(BaseOkHttpConfig.getInstance().getOverallHeader().toParameterJson().toString()); } Text savecookie = (Text) findComponentById(ResourceTable.Id_savecookie); @@ -130,10 +133,10 @@ public class SetAbilitySlice extends AbilitySlice { public void onClick(Component component) { if (url2.getText().equals("") || url2.getText() == null) { - BaseOkHttp.reserveServiceUrls = null; + BaseOkHttpConfig.getInstance().setReserveServiceUrls(null); } else { String[] srt = url2.getText().split(","); - BaseOkHttp.reserveServiceUrls = srt; + BaseOkHttpConfig.getInstance().setReserveServiceUrls(srt); } ToastDialog toastDialog = new ToastDialog(SetAbilitySlice.this); @@ -147,7 +150,7 @@ public class SetAbilitySlice extends AbilitySlice { ToastDialog toastDialog = new ToastDialog(SetAbilitySlice.this); toastDialog.setText("clean ok").setDuration(1000).show(); //容灾地址 - BaseOkHttp.reserveServiceUrls = null; + BaseOkHttpConfig.getInstance().setReserveServiceUrls(null); url2.setText(""); } }); @@ -161,19 +164,17 @@ public class SetAbilitySlice extends AbilitySlice { Map jsonObject = null; try { jsonObject = JsonUtil.jsonToMap(json); + for (Map.Entry entry : jsonObject.entrySet()) { + parameter.add(entry.getKey(), entry.getValue().toString()); + } } catch (Exception e) { e.printStackTrace(); } - - for (Map.Entry entry : jsonObject.entrySet()) { - parameter.add(entry.getKey(), entry.getValue().toString()); - } - } else { ToastDialog toastDialog = new ToastDialog(this); toastDialog.setText("header is null").setDuration(1000).show(); } - BaseOkHttp.overallHeader = parameter; + BaseOkHttpConfig.getInstance().setOverallHeader(parameter); ToastDialog toastDialog = new ToastDialog(SetAbilitySlice.this); toastDialog.setText("OK").setDuration(1000).show(); } diff --git a/entry/src/main/java/com/kongzue/baseokhttpv3/newslice/TimeAbilitySlice.java b/entry/src/main/java/com/kongzue/baseokhttpv3/newslice/TimeAbilitySlice.java index ecc5f6a..4ae25f8 100644 --- a/entry/src/main/java/com/kongzue/baseokhttpv3/newslice/TimeAbilitySlice.java +++ b/entry/src/main/java/com/kongzue/baseokhttpv3/newslice/TimeAbilitySlice.java @@ -1,6 +1,7 @@ package com.kongzue.baseokhttpv3.newslice; import com.kongzue.baseokhttp.util.BaseOkHttp; +import com.kongzue.baseokhttp.util.BaseOkHttpConfig; import com.kongzue.baseokhttpv3.ResourceTable; import ohos.aafwk.ability.AbilitySlice; import ohos.aafwk.content.Intent; @@ -29,7 +30,7 @@ public class TimeAbilitySlice extends AbilitySlice { toastDialog.setText("Do not empty").setDuration(1000).show(); return; } - BaseOkHttp.TIME_OUT_DURATION = Integer.valueOf(asktime.getText().toString()); + BaseOkHttpConfig.getInstance().setTimeOutDuration(Integer.valueOf(asktime.getText().toString())); toastDialog.setText("OK").setDuration(1000).show(); } diff --git a/entry/src/main/java/com/kongzue/baseokhttpv3/slice/DataBean.java b/entry/src/main/java/com/kongzue/baseokhttpv3/slice/DataBean.java index 05f022b..95e8d91 100644 --- a/entry/src/main/java/com/kongzue/baseokhttpv3/slice/DataBean.java +++ b/entry/src/main/java/com/kongzue/baseokhttpv3/slice/DataBean.java @@ -81,18 +81,23 @@ public class DataBean { @Override public String toString() { - String list = "["; + StringBuffer sb = new StringBuffer(); + sb.append("DataBean{code="); + sb.append(code); + sb.append(", message='"); + sb.append(message); + sb.append('\''); + sb.append(", result="); + sb.append("["); if (result != null) { for (Result r : result) { - list = list + r + ",\n"; + sb.append(r); + sb.append(",\n"); } } - list = list + "]"; - return "DataBean{" + - "code=" + code + - ", message='" + message + '\'' + - ", result=" + list + - '}'; + sb.append("]"); + sb.append('}'); + return sb.toString(); } diff --git a/entry/src/main/java/com/kongzue/baseokhttpv3/slice/MainAbility1Slice.java b/entry/src/main/java/com/kongzue/baseokhttpv3/slice/MainAbility1Slice.java index d14310d..7dcb957 100644 --- a/entry/src/main/java/com/kongzue/baseokhttpv3/slice/MainAbility1Slice.java +++ b/entry/src/main/java/com/kongzue/baseokhttpv3/slice/MainAbility1Slice.java @@ -5,15 +5,13 @@ import com.kongzue.baseokhttp.BaseWebSocket; import com.kongzue.baseokhttp.HttpRequest; import com.kongzue.baseokhttp.Logger; import com.kongzue.baseokhttp.listener.*; -import com.kongzue.baseokhttp.util.BaseOkHttp; -import com.kongzue.baseokhttp.util.JsonList; -import com.kongzue.baseokhttp.util.JsonMap; -import com.kongzue.baseokhttp.util.Parameter; +import com.kongzue.baseokhttp.util.*; import com.kongzue.baseokhttpv3.ResourceTable; import ohos.aafwk.ability.AbilitySlice; import ohos.aafwk.content.Intent; import ohos.agp.components.*; import ohos.agp.utils.Point; +import ohos.agp.utils.TextTool; import ohos.agp.window.dialog.ToastDialog; import ohos.agp.window.service.Display; import ohos.agp.window.service.DisplayManager; @@ -120,15 +118,15 @@ public class MainAbility1Slice extends AbilitySlice { btn_get_header = (Button) findComponentById(ResourceTable.Id_btn_get_header); btn_upload = (Button) findComponentById(ResourceTable.Id_btn_upload); - BaseOkHttp.overallHeader = new Parameter().add("Charset", "UTF-8").add("Content-Type", - "application/json").add("Accept-Encoding", "gzip,deflate"); - BaseOkHttp.parameterInterceptListener = new ParameterInterceptListener() { + BaseOkHttpConfig.getInstance().setOverallHeader(new Parameter().add("Charset", "UTF-8").add("Content-Type", + "application/json").add("Accept-Encoding", "gzip,deflate")); + BaseOkHttpConfig.getInstance().setParameterInterceptListener(new ParameterInterceptListener() { @Override public JsonMap onIntercept(Context context, String url, JsonMap o) { return null; } - }; - BaseOkHttp.responseInterceptListener = new ResponseInterceptListener() { + }); + BaseOkHttpConfig.getInstance().setResponseInterceptListener(new ResponseInterceptListener() { @Override public boolean onResponse(Context context, String url, String response, Exception error) { @@ -138,15 +136,15 @@ public class MainAbility1Slice extends AbilitySlice { return true; } } - }; - JsonMap.preParsing = true; + }); + JsonMapConfig.getInstance().setPreParsing(true); final Context context = this; loadDialog = new LoadDialog(this); btn_http.setClickedListener(new Component.ClickedListener() { @Override public void onClick(Component component) { - BaseOkHttp.SSLInAssetsFileName = null; + BaseOkHttpConfig.getInstance().setSSLInAssetsFileName(null); loadDialog.show(); HttpRequest.POST(MainAbility1Slice.this, "/getWangYiNews", new Parameter().add("page", "1").add("count", 5), new JsonResponseListener() { @@ -178,7 +176,7 @@ public class MainAbility1Slice extends AbilitySlice { @Override public void onClick(Component component) { loadDialog.show(); - BaseOkHttp.SSLInAssetsFileName = "test.cer"; + BaseOkHttpConfig.getInstance().setSSLInAssetsFileName("test.cer"); HttpRequest.POST(MainAbility1Slice.this, "/getWangYiNews", new Parameter().add("page", "1").add("count", 5), new JsonResponseListener() { @Override @@ -223,7 +221,7 @@ public class MainAbility1Slice extends AbilitySlice { url.getText().toString()); psg_download.setProgressValue(0); String filePath = url.getText().trim(); - if (null == filePath || filePath == "") { + if (TextTool.isNullOrEmpty(filePath)) { ToastDialog toastDialog = new ToastDialog(MainAbility1Slice.this); toastDialog.setText("file path empty").setDuration(1000).show(); return; @@ -379,16 +377,16 @@ public class MainAbility1Slice extends AbilitySlice { btn_set_header.setClickedListener(new Component.ClickedListener() { @Override public void onClick(Component component) { - BaseOkHttp.overallHeader = new Parameter().add("Charset", "UTF-8").add( + BaseOkHttpConfig.getInstance().setOverallHeader(new Parameter().add("Charset", "UTF-8").add( "Content-Type", "application/json").add("Accept-Encoding", "gzip,deflate").add( - "testKey", "testValues"); + "testKey", "testValues")); } }); btn_get_header.setClickedListener(new Component.ClickedListener() { @Override public void onClick(Component component) { - tv_result_header.setText(BaseOkHttp.overallHeader.toParameterString()); + tv_result_header.setText(BaseOkHttpConfig.getInstance().getOverallHeader().toParameterString()); } }); @@ -417,7 +415,7 @@ public class MainAbility1Slice extends AbilitySlice { RawFileEntry rawFileEntry = resManager.getRawFileEntry( "resources/rawfile/70810b0e1dbeb842c3b45dc007988737.jpeg"); - byte[] buffer = new byte[0]; + byte[] buffer; try { buffer = new byte[rawFileEntry.openRawFile().available()]; rawFileEntry.openRawFile().read(buffer); diff --git a/entry/src/main/java/com/kongzue/baseokhttpv3/slice/MainAbility2Sclice.java b/entry/src/main/java/com/kongzue/baseokhttpv3/slice/MainAbility2Sclice.java index 79cf34c..7a6f7dc 100644 --- a/entry/src/main/java/com/kongzue/baseokhttpv3/slice/MainAbility2Sclice.java +++ b/entry/src/main/java/com/kongzue/baseokhttpv3/slice/MainAbility2Sclice.java @@ -1,6 +1,7 @@ package com.kongzue.baseokhttpv3.slice; import com.kongzue.baseokhttp.util.BaseOkHttp; +import com.kongzue.baseokhttp.util.BaseOkHttpConfig; import com.kongzue.baseokhttpv3.ResourceTable; import ohos.aafwk.ability.AbilitySlice; import ohos.aafwk.content.Intent; @@ -27,8 +28,8 @@ public class MainAbility2Sclice extends AbilitySlice { public void onStart(Intent intent) { super.onStart(intent); super.setUIContent(ResourceTable.Layout_ability_main_new); - BaseOkHttp.reserveServiceUrls = new String[]{"https://www.twitter.com", "https://api.apiopen.top"}; - BaseOkHttp.serviceUrl = "https://www.fastmock.site"; + BaseOkHttpConfig.getInstance().setReserveServiceUrls(new String[]{"https://www.twitter.com", "https://api.apiopen.top"}); + BaseOkHttpConfig.getInstance().setServiceUrl("https://www.fastmock.site"); getAuth(); initView(); initClick(); diff --git a/entry/src/main/java/com/kongzue/baseokhttpv3/slice/ProgressWheel.java b/entry/src/main/java/com/kongzue/baseokhttpv3/slice/ProgressWheel.java index c50b5bc..febe2c4 100644 --- a/entry/src/main/java/com/kongzue/baseokhttpv3/slice/ProgressWheel.java +++ b/entry/src/main/java/com/kongzue/baseokhttpv3/slice/ProgressWheel.java @@ -38,8 +38,6 @@ public class ProgressWheel extends DependentLayout { //Sizes (with defaults) private int layoutHeight = 0; private int layoutWidth = 0; - private int fullRadius = 100; - private int circleRadius = 80; private int barLength = 60; private int barWidth = 20; private int rimWidth = 20; @@ -71,7 +69,6 @@ public class ProgressWheel extends DependentLayout { private RectFloat innerCircleBounds = new RectFloat(); private RectFloat circleBounds = new RectFloat(); private RectFloat circleOuterContour = new RectFloat(); - private RectFloat circleInnerContour = new RectFloat(); //Animation //The amount of pixels to move the bar by on each draw @@ -106,13 +103,13 @@ public class ProgressWheel extends DependentLayout { spinSpeed = TypedAttrUtils.getDimensionPixelSize(attrSet, "spinSpeed", 0); barColor = TypedAttrUtils.getIntColor(attrSet, "barColor", 0); rimColor = TypedAttrUtils.getIntColor(attrSet, "rimColor", 0); - ProgressWheel(); + init(); } /** * The constructor for the ProgressWheel */ - private void ProgressWheel() { + private void init() { //Draw the text (attempts to center it horizontally and vertically) DrawTask task = (component, canvas) -> { setupBounds(); @@ -205,19 +202,11 @@ public class ProgressWheel extends DependentLayout { paddingTop + barWidth, width - paddingRight - barWidth, height - paddingBottom - barWidth); - circleInnerContour = new RectFloat( - circleBounds.left + (rimWidth / 2.0f) + (contourSize / 2.0f), - circleBounds.top + (rimWidth / 2.0f) + (contourSize / 2.0f), - circleBounds.right - (rimWidth / 2.0f) - (contourSize / 2.0f), - circleBounds.bottom - (rimWidth / 2.0f) - (contourSize / 2.0f)); circleOuterContour = new RectFloat( circleBounds.left - (rimWidth / 2.0f) - (contourSize / 2.0f), circleBounds.top - (rimWidth / 2.0f) - (contourSize / 2.0f), circleBounds.right + (rimWidth / 2.0f) + (contourSize / 2.0f), circleBounds.bottom + (rimWidth / 2.0f) + (contourSize / 2.0f)); - - fullRadius = (width - paddingRight - barWidth) / 2; - circleRadius = (fullRadius - barWidth) + 1; } @Override diff --git a/entry/src/ohosTest/java/com/kongzue/baseokhttpv3/ExampleOhosTest.java b/entry/src/ohosTest/java/com/kongzue/baseokhttpv3/ExampleOhosTest.java index c73af1e..3ceb02f 100644 --- a/entry/src/ohosTest/java/com/kongzue/baseokhttpv3/ExampleOhosTest.java +++ b/entry/src/ohosTest/java/com/kongzue/baseokhttpv3/ExampleOhosTest.java @@ -6,10 +6,7 @@ import com.kongzue.baseokhttp.Logger; import com.kongzue.baseokhttp.listener.JsonResponseListener; import com.kongzue.baseokhttp.listener.OnDownloadListener; import com.kongzue.baseokhttp.listener.WebSocketStatusListener; -import com.kongzue.baseokhttp.util.BaseOkHttp; -import com.kongzue.baseokhttp.util.JsonList; -import com.kongzue.baseokhttp.util.JsonMap; -import com.kongzue.baseokhttp.util.Parameter; +import com.kongzue.baseokhttp.util.*; import ohos.aafwk.ability.delegation.AbilityDelegatorRegistry; import ohos.hiviewdfx.HiLog; import okhttp3.Response; @@ -22,8 +19,8 @@ import java.net.SocketException; public class ExampleOhosTest { @Test public void Setting() { - BaseOkHttp.reserveServiceUrls = new String[]{"https://www.twitter.com", "https://api.apiopen.top"}; - BaseOkHttp.serviceUrl = "https://www.fastmock.site"; + BaseOkHttpConfig.getInstance().setReserveServiceUrls(new String[]{"https://www.twitter.com", "https://api.apiopen.top"}); + BaseOkHttpConfig.getInstance().setServiceUrl("https://www.fastmock.site"); } @Test @@ -50,7 +47,7 @@ public class ExampleOhosTest { @Test public void POST_SSL() { Setting(); - BaseOkHttp.SSLInAssetsFileName = "test.cer"; + BaseOkHttpConfig.getInstance().setSSLInAssetsFileName("test.cer"); HttpRequest.POST(AbilityDelegatorRegistry.getAbilityDelegator().getAppContext(), "/getWangYiNews", new Parameter().add("page", "1").add("count", 5), new JsonResponseListener() { @Override @@ -146,7 +143,7 @@ public class ExampleOhosTest { @Test public void deletejson() { Setting(); - BaseOkHttp.SSLInAssetsFileName = null; + BaseOkHttpConfig.getInstance().setSSLInAssetsFileName(null); Parameter header = new Parameter(); HttpRequest.build(AbilityDelegatorRegistry.getAbilityDelegator().getAppContext(), "/mock/d2ac8d0e4404412de7b2b4e23f026c63/_ceshi-01/delete/test").setJsonParameter("{\n" + " \"key\": \"177c070d1922f938ccee95b6bd04df0b\",\n" + @@ -162,7 +159,7 @@ public class ExampleOhosTest { @Test public void postbiaodan() { Setting(); - BaseOkHttp.SSLInAssetsFileName = null; + BaseOkHttpConfig.getInstance().setSSLInAssetsFileName(null); Parameter parameter = new Parameter(); HttpRequest.POST(AbilityDelegatorRegistry.getAbilityDelegator().getAppContext(), "/mock/5009ac87331ccbc9fce98559554f58a5/test/test_postform", @@ -177,7 +174,7 @@ public class ExampleOhosTest { @Test public void postjson() { Setting(); - BaseOkHttp.SSLInAssetsFileName = null; + BaseOkHttpConfig.getInstance().setSSLInAssetsFileName(null); Parameter parameter = new Parameter(); HttpRequest.JSONPOST(AbilityDelegatorRegistry.getAbilityDelegator().getAppContext(), "/mock/5009ac87331ccbc9fce98559554f58a5/test/test_postjson", "{\n" + @@ -193,7 +190,7 @@ public class ExampleOhosTest { @Test public void put() { Setting(); - BaseOkHttp.SSLInAssetsFileName = null; + BaseOkHttpConfig.getInstance().setSSLInAssetsFileName(null); Parameter parameter = new Parameter(); Parameter header = new Parameter(); HttpRequest.PUT(AbilityDelegatorRegistry.getAbilityDelegator().getAppContext(), "/mock/5009ac87331ccbc9fce98559554f58a5/test/test/put", header, @@ -208,7 +205,7 @@ public class ExampleOhosTest { @Test public void getbiaodan() { Setting(); - BaseOkHttp.SSLInAssetsFileName = null; + BaseOkHttpConfig.getInstance().setSSLInAssetsFileName(null); Parameter parameter = new Parameter(); HttpRequest.GET(AbilityDelegatorRegistry.getAbilityDelegator().getAppContext(), "/mock/5009ac87331ccbc9fce98559554f58a5/test/get_api", parameter, new JsonResponseListener() { -- Gitee