增加了Token刷新机制

This commit is contained in:
董宏宇
2021-01-29 12:02:40 +08:00
parent d3bf97980c
commit 04d012e975
4 changed files with 50 additions and 18 deletions

View File

@@ -1,6 +1,9 @@
package com.mogo.cloud.network.interceptor
import com.mogo.cloud.network.BaseData
import com.mogo.cloud.passport.MoGoAiCloudClient
import com.mogo.utils.logger.Logger
import com.mogo.utils.network.utils.GsonUtil
import okhttp3.Interceptor
import okhttp3.MediaType
import okhttp3.Response
@@ -26,7 +29,16 @@ class HttpPassportInterceptor : Interceptor {
bodySize = if (contentLength != -1L) "$contentLength-byte" else "unknown-length"
contentType = responseBody.contentType()
responseContent = responseBody.string()
Logger.d("响应结果", "responseContent$responseContent")
val response: BaseData<*>? = GsonUtil.objectFromJson(responseContent, BaseData::class.java)
// 处理Token异常
if (response?.code == 100046 ||
response?.code == 100045 ||
response?.code == 100005 ||
response?.code == 100006 ||
response?.code == 520003) {
Logger.d("HttpPassportInterceptor", "Token 异常:$response")
MoGoAiCloudClient.getInstance().refreshToken()
}
consumedResponse = true
}
return if (consumedResponse) response.newBuilder().body(ResponseBody.create(contentType, responseContent)).build() else response