wangkai

修改网络库

... ... @@ -4,13 +4,15 @@ package com.wd.fastcoding.app;
import android.app.Application;
import com.wd.capability.network.RetrofitClient;
import com.wd.common.interceptor.TokenInterceptor;
import com.wd.foundation.wdinterfaceimpl.interceptor.TokenInterceptor;
import com.wd.capability.router.ArouteInit;
import com.wd.foundation.wdkit.utils.CommonUtil;
import com.wd.fastcoding.app.start.StartTaskConfig;
import com.wd.foundation.wdkitcore.tools.AppContext;
import com.wd.foundation.wdkitcore.tools.StringUtils;
import okhttp3.Interceptor;
/**
* @author devel
* @time 2024/8/28 星期三 16:23
... ... @@ -35,10 +37,10 @@ public class MyApplication extends Application {
* 初始化第三方库
*/
private void initLibs() {
// 网络请求初始化,主线程立即调用
RetrofitClient.init(this, new TokenInterceptor(RetrofitClient.getInterceptorHosts()));
// 路由初始化,主线程立即调用
ArouteInit.getInstance().init(this);
// 网络请求初始化,主线程立即调用
RetrofitClient.init(this);
}
/**
... ...
... ... @@ -49,6 +49,7 @@ android {
dependencies {
api 'com.alibaba:arouter-api:1.5.2'
api 'com.squareup.okhttp3:okhttp:4.8.0'
}
uploadArchives {
... ...
package com.wd.foundation.wdinterface.config
import com.alibaba.android.arouter.facade.template.IProvider
import okhttp3.Interceptor
/**
* @author wangkai
* @version [V1.0.0, 2024/11/8]
* @brief
*/
interface IConfig : IProvider {
interface INetConfig : IProvider {
fun getBaseUrl(): String
fun getInterceptors(): Array<Interceptor>
}
... ...
... ... @@ -11,5 +11,5 @@ public class InterfaceConstant {
public static final String PATH_APP_INFO = PATH_MODULE_INTERFACE + "/AppInfoService";
public static final String PATH_CONFIG = PATH_MODULE_INTERFACE + "/Config";
public static final String PATH_NET_CONFIG = PATH_MODULE_INTERFACE + "/NetConfig";
}
... ...
package com.wd.common.api;
package com.wd.foundation.wdinterfaceimpl.config;
import com.wd.capability.network.bean.TokenBean;
... ...
... ... @@ -5,26 +5,36 @@ import android.content.Context;
import androidx.annotation.NonNull;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.wd.foundation.wdinterface.config.IConfig;
import com.wd.capability.network.RetrofitClient;
import com.wd.foundation.wdinterface.config.INetConfig;
import com.wd.foundation.wdinterface.constant.InterfaceConstant;
import com.wd.foundation.wdinterfaceimpl.interceptor.TokenInterceptor;
import okhttp3.Interceptor;
/**
* @author wangkai
* @version [V1.0.0, 2024/11/8]
* @brief
*/
@Route(path = InterfaceConstant.PATH_CONFIG)
public class Config implements IConfig {
@Route(path = InterfaceConstant.PATH_NET_CONFIG)
public class NetConfig implements INetConfig {
private static final String baseUrlRel = "https://pdapis.pdnews.cn/";
@Override
public void init(Context context) {
}
@NonNull
@Override
public String getBaseUrl() {
return baseUrlRel;
}
@NonNull
@Override
public void init(Context context) {
public Interceptor[] getInterceptors() {
return new TokenInterceptor[]{new TokenInterceptor(RetrofitClient.getInterceptorHosts())};
}
}
... ...
package com.wd.common.interceptor;
package com.wd.foundation.wdinterfaceimpl.interceptor;
import android.os.Handler;
import android.os.Looper;
... ... @@ -11,7 +11,6 @@ import androidx.annotation.NonNull;
import com.wd.base.log.Logger;
import com.wd.capability.network.BaseObserver;
import com.wd.capability.network.RetrofitClient;
import com.wd.common.api.IRefreshToken;
import com.wd.capability.network.bean.MetaBean;
import com.wd.capability.network.bean.TokenBean;
import com.wd.capability.network.constant.EventConstants;
... ... @@ -20,6 +19,7 @@ import com.wd.capability.network.constant.ParameterConstant;
import com.wd.capability.network.interceptor.LoggingInterceptor;
import com.wd.capability.network.refreshtoken.IRefreshTokenForJsCallBack;
import com.wd.capability.network.response.BaseResponse;
import com.wd.foundation.wdinterfaceimpl.config.IRefreshToken;
import com.wd.foundation.wdkit.json.JsonParseUtil;
import com.wd.foundation.wdkit.utils.DeviceUtil;
import com.wd.foundation.wdkit.utils.SpUtils;
... ...
... ... @@ -13,6 +13,9 @@ import com.wd.capability.network.interceptor.BaseInterceptor;
import com.wd.capability.network.interceptor.DynamicTimeoutInterceptor;
import com.wd.capability.network.interceptor.LoggingInterceptor;
import com.wd.capability.network.interceptor.MultiDomainInterceptor;
import com.wd.foundation.wdinterface.config.INetConfig;
import com.wd.foundation.wdinterface.constant.InterfaceConstant;
import com.wd.foundation.wdkitcore.router.ArouterServiceManager;
import com.wd.foundation.wdkitcore.tools.ArrayUtils;
import java.io.File;
... ... @@ -63,25 +66,20 @@ public class RetrofitClient {
* 过滤接口名字不做429弹窗
*/
private static List<String> interceptorHosts;
private static Interceptor mTokenInterceptor;
public static void init(Context context) {
mContext = context;
}
public static void init(Context context, Interceptor tokenInterceptor) {
mContext = context;
mTokenInterceptor = tokenInterceptor;
}
/**
* 429不弹出
*
* @param requestHosts
*/
public static void initInterceptor( List<String> requestHosts) {
if (ArrayUtils.isNotEmpty(requestHosts)){
if (null == interceptorHosts){
public static void initInterceptor(List<String> requestHosts) {
if (ArrayUtils.isNotEmpty(requestHosts)) {
if (null == interceptorHosts) {
interceptorHosts = new ArrayList<>();
}
interceptorHosts.clear();
... ... @@ -112,6 +110,10 @@ public class RetrofitClient {
if (TextUtils.isEmpty(url)) {
url = baseUrl;
}
INetConfig config = ArouterServiceManager.provide(InterfaceConstant.PATH_NET_CONFIG);
if (config != null) {
url = config.getBaseUrl();
}
if (httpCacheDirectory == null) {
httpCacheDirectory = new File(mContext.getCacheDir(), NetManager.getNetManager().builder.getCacheFile());
... ... @@ -124,12 +126,17 @@ public class RetrofitClient {
e.printStackTrace();
}
Interceptor[] mInterceptors = config.getInterceptors();
// HttpsUtils.SslParams sslParams = HttpsUtils.getSslSocketFactory();
OkHttpClient.Builder builder = new OkHttpClient.Builder().cache(cache);
builder.addInterceptor(new MultiDomainInterceptor())
.addInterceptor(new BaseInterceptor(mContext))
.addInterceptor(mTokenInterceptor)
.addInterceptor(new DynamicTimeoutInterceptor());
.addInterceptor(new BaseInterceptor(mContext));
if (mInterceptors != null && mInterceptors.length > 0) {
for (Interceptor interceptor : mInterceptors) {
builder.addInterceptor(interceptor);
}
}
builder.addInterceptor(new DynamicTimeoutInterceptor());
if (BuildConfig.DEBUG) {
builder.addInterceptor(new LoggingInterceptor());
}
... ...