hxb
2024-10-24 773b9953ad645b39a9efa8ab6d71dfc9d9e4e22e
HDLLinkPMSdk/src/main/java/com/hdl/linkpm/sdk/core/interceptor/HDLLoginInterceptor.java
@@ -16,6 +16,7 @@
import com.hdl.linkpm.sdk.user.HDLLinkPMUser;
import com.hdl.linkpm.sdk.user.bean.HDLLoginBean;
import com.hdl.linkpm.sdk.utils.HDLGsonUtils;
import com.hdl.linkpm.sdk.utils.HDLSDKLog;
import java.io.IOException;
import java.nio.charset.Charset;
@@ -36,12 +37,14 @@
 */
public class HDLLoginInterceptor implements Interceptor {
    private String TAG =HDLLoginInterceptor.class.getName();
    @NonNull
    @Override
    public Response intercept(@NonNull Chain chain) throws IOException {
        Request request = chain.request();
        if (!isRefreshTokenHeader(request.headers())) {
            String token = HDLLinkPMUser.getInstance().getAccessToken();
            HDLSDKLog.i(TAG, "当前请求token:"+token);
            if (!TextUtils.isEmpty(token)) {
                Request processRequest = addToken(request, token);
                Response processResponse = chain.proceed(processRequest);
@@ -60,7 +63,7 @@
//            source2.request(Long.MAX_VALUE);
//            Buffer buffer2 = source2.getBuffer().clone();
//            String respString2 = buffer2.readString(Charset.defaultCharset());
            //http标准状态码
            if (401 == response.code() || 402 == response.code() || 403 == response.code()) {
                final String token = refreshToken();
                if (!TextUtils.isEmpty(token)) {
@@ -148,6 +151,7 @@
     */
    private String refreshToken() {
        final String cacheRefreshToken = HDLLinkPMUser.getInstance().getRefreshToken();
        HDLSDKLog.i(TAG, "刷新Token,当前刷新Token是:"+cacheRefreshToken);
        final String regionUrl = HDLCloudUserApi.getRequestUrl(HDLCloudUserApi.POST_LOGIN);
        final OkHttpClient client = HxHttpConfig.getInstance().getClient();
        Request.Builder builder = new Request.Builder();
@@ -172,6 +176,7 @@
                    BaseInfo<HDLLoginBean> baseInfo = HDLGsonUtils.fromJson(respString, new TypeToken<BaseInfo<HDLLoginBean>>() {
                    }.getType());
                    if (baseInfo != null) {
                        HDLSDKLog.i(TAG, "获取到刷新Token的数据,状态码:"+baseInfo.getCode());
                        if (baseInfo.getCode() == HDLCloudCode.SUCCEED) {
                            if (baseInfo.getData() != null) {
                                HDLLoginBean loginBean = baseInfo.getData();