From de1767f8fd8d0bf8f23619ad2f28bda478ae4e68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Thu, 28 Jan 2021 17:43:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0Token=E6=8B=A6=E6=88=AA?= =?UTF-8?q?=E9=80=82=E9=85=8D=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mogo/cloud/MoGoApplication.java | 2 +- .../com/mogo/cloud/network/OkHttpFactory.kt | 2 ++ .../cloud/network/SSLSocketFactoryUtils.kt | 8 ++--- .../interceptor/HttpPassportInterceptor.kt | 35 +++++++++++++++++++ .../cloud/passport/MoGoAiCloudClient.java | 2 ++ 5 files changed, 44 insertions(+), 5 deletions(-) create mode 100644 foudations/mogo-network/src/main/java/com/mogo/cloud/network/interceptor/HttpPassportInterceptor.kt diff --git a/app/src/main/java/com/mogo/cloud/MoGoApplication.java b/app/src/main/java/com/mogo/cloud/MoGoApplication.java index 36070af..18958d4 100644 --- a/app/src/main/java/com/mogo/cloud/MoGoApplication.java +++ b/app/src/main/java/com/mogo/cloud/MoGoApplication.java @@ -40,7 +40,7 @@ public class MoGoApplication extends MultiDexApplication { // 设置从蘑菇AI开放平台获取的APPKey clientConfig.setThirdPartyAppKey("bydauto"); // 设置车机设备的唯一标识(这些表识必须是通过后台录入的设备) - clientConfig.setThirdPartyDeviceId("bydauto"); + clientConfig.setThirdPartyDeviceId("F803EB2046PZD00149"); // 设置循环检测间隔时间 clientConfig.setLoopCheckDelay(15 * 1000); diff --git a/foudations/mogo-network/src/main/java/com/mogo/cloud/network/OkHttpFactory.kt b/foudations/mogo-network/src/main/java/com/mogo/cloud/network/OkHttpFactory.kt index 9caed9f..fbfe63c 100644 --- a/foudations/mogo-network/src/main/java/com/mogo/cloud/network/OkHttpFactory.kt +++ b/foudations/mogo-network/src/main/java/com/mogo/cloud/network/OkHttpFactory.kt @@ -8,6 +8,7 @@ import com.mogo.cloud.network.SSLSocketFactoryUtils.createTrustAllManager import com.mogo.cloud.network.interceptor.HttpHeaderInterceptor import com.mogo.cloud.network.interceptor.HttpDnsInterceptor import com.mogo.cloud.network.interceptor.HttpLoggingInterceptor +import com.mogo.cloud.network.interceptor.HttpPassportInterceptor import okhttp3.OkHttpClient import java.util.concurrent.TimeUnit @@ -25,6 +26,7 @@ class OkHttpFactory private constructor() { .addNetworkInterceptor(HttpHeaderInterceptor()) .addNetworkInterceptor(HttpLoggingInterceptor()) .addInterceptor(HttpDnsInterceptor()) + .addInterceptor(HttpPassportInterceptor()) .sslSocketFactory(createSSLSocketFactory(), createTrustAllManager()) .hostnameVerifier(SSLSocketFactoryUtils.TrustAllHostnameVerifier()) .connectTimeout(CONNECT_TIMEOUT, TimeUnit.MILLISECONDS) diff --git a/foudations/mogo-network/src/main/java/com/mogo/cloud/network/SSLSocketFactoryUtils.kt b/foudations/mogo-network/src/main/java/com/mogo/cloud/network/SSLSocketFactoryUtils.kt index 172150b..c742884 100644 --- a/foudations/mogo-network/src/main/java/com/mogo/cloud/network/SSLSocketFactoryUtils.kt +++ b/foudations/mogo-network/src/main/java/com/mogo/cloud/network/SSLSocketFactoryUtils.kt @@ -10,10 +10,10 @@ import javax.net.ssl.* * describe: */ object SSLSocketFactoryUtils { - /* - * 默认信任所有的证书 - * 最好加上证书认证,主流App都有自己的证书 - * */ + /** + * 默认信任所有的证书 + * 最好加上证书认证,主流App都有自己的证书 + * */ private const val str = "TLS" fun createSSLSocketFactory(): SSLSocketFactory? { var sslSocketFactory: SSLSocketFactory? = null diff --git a/foudations/mogo-network/src/main/java/com/mogo/cloud/network/interceptor/HttpPassportInterceptor.kt b/foudations/mogo-network/src/main/java/com/mogo/cloud/network/interceptor/HttpPassportInterceptor.kt new file mode 100644 index 0000000..0d764ec --- /dev/null +++ b/foudations/mogo-network/src/main/java/com/mogo/cloud/network/interceptor/HttpPassportInterceptor.kt @@ -0,0 +1,35 @@ +package com.mogo.cloud.network.interceptor + +import com.mogo.utils.logger.Logger +import okhttp3.Interceptor +import okhttp3.MediaType +import okhttp3.Response +import okhttp3.ResponseBody + +/** + * created by donghongyu on 2021/1/28 14:33 + * describe: 令牌拦截,如果发现令牌过期需要重新获取令牌 + */ +class HttpPassportInterceptor : Interceptor { + override fun intercept(chain: Interceptor.Chain): Response { + Logger.d("HttpPassportInterceptor", "Passport error ") + + val response = chain.proceed(chain.request()) + val responseBody = response.body() + var responseContent: String? = null + var bodySize: String? = null + var contentType: MediaType? = null + var consumedResponse = false + + if (responseBody != null) { + val contentLength = responseBody.contentLength() + bodySize = if (contentLength != -1L) "$contentLength-byte" else "unknown-length" + contentType = responseBody.contentType() + responseContent = responseBody.string() + Logger.d("响应结果", "responseContent:$responseContent") + consumedResponse = true + } + return if (consumedResponse) response.newBuilder().body(ResponseBody.create(contentType, responseContent)).build() else response + + } +} \ No newline at end of file diff --git a/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClient.java b/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClient.java index 2e48278..b476607 100644 --- a/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClient.java +++ b/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClient.java @@ -2,6 +2,7 @@ package com.mogo.cloud.passport; import android.content.Context; import android.util.Log; +import android.widget.Toast; import androidx.annotation.Keep; @@ -115,6 +116,7 @@ public class MoGoAiCloudClient { @Override public void onFailure(int code, String msg) { + Toast.makeText(mContext, "MoGo鉴权失败", Toast.LENGTH_SHORT).show(); Log.e(TAG, "═════════════════════════════════════"); Log.e(TAG, "║ MoGo鉴权失败 "); Log.e(TAG, "║ ErrorCode:" + code);