|
@@ -14,6 +14,7 @@ import com.qmth.boot.core.retrofit.interceptor.LoggingInterceptor;
|
|
|
import com.qmth.boot.core.retrofit.interceptor.RetryInterceptor;
|
|
|
import com.qmth.boot.core.retrofit.interceptor.SignatureInterceptor;
|
|
|
import com.qmth.boot.core.retrofit.interfaces.CustomizeRetrofitConfiguration;
|
|
|
+import com.qmth.boot.tools.syntax.Optional;
|
|
|
import io.micrometer.core.instrument.MeterRegistry;
|
|
|
import io.micrometer.core.instrument.binder.okhttp3.OkHttpMetricsEventListener;
|
|
|
import okhttp3.ConnectionPool;
|
|
@@ -99,8 +100,10 @@ public class RetrofitFactoryBean<T> implements FactoryBean<T>, ApplicationContex
|
|
|
*/
|
|
|
private OkHttpClient getOkHttpClient(RetrofitClient retrofitClient, CustomizeRetrofitConfiguration customize) {
|
|
|
OkHttpClient.Builder okHttpClientBuilder = new OkHttpClient.Builder().connectionPool(new ConnectionPool())
|
|
|
- .connectTimeout(retrofitProperties.getConnectTimeout()).readTimeout(retrofitProperties.getReadTimeout())
|
|
|
- .writeTimeout(retrofitProperties.getWriteTimeout());
|
|
|
+ .connectTimeout(
|
|
|
+ Optional.firstNotNull(customize.getConnectTimeout(), retrofitProperties.getConnectTimeout()))
|
|
|
+ .readTimeout(Optional.firstNotNull(customize.getReadTimeout(), retrofitProperties.getReadTimeout()))
|
|
|
+ .writeTimeout(Optional.firstNotNull(customize.getWriteTimeout(), retrofitProperties.getWriteTimeout()));
|
|
|
|
|
|
// add signature interceptor
|
|
|
okHttpClientBuilder.addInterceptor(new SignatureInterceptor(customize.getSignature()));
|
|
@@ -109,10 +112,11 @@ public class RetrofitFactoryBean<T> implements FactoryBean<T>, ApplicationContex
|
|
|
okHttpClientBuilder.addInterceptor(new ErrorDecodeInterceptor());
|
|
|
|
|
|
// add retry interceptor
|
|
|
- okHttpClientBuilder.addInterceptor(new RetryInterceptor(retrofitProperties.getRetry()));
|
|
|
+ okHttpClientBuilder.addInterceptor(new RetryInterceptor(
|
|
|
+ Optional.firstNotNull(customize.getRetryProperties(), retrofitProperties.getRetry())));
|
|
|
|
|
|
// add logging interceptor
|
|
|
- LogLevel logLevel = getLogLevel(retrofitClient);
|
|
|
+ LogLevel logLevel = getLogLevel(customize, retrofitClient);
|
|
|
if (!logLevel.equals(LogLevel.OFF)) {
|
|
|
okHttpClientBuilder.addNetworkInterceptor(new LoggingInterceptor(logLevel));
|
|
|
}
|
|
@@ -134,10 +138,10 @@ public class RetrofitFactoryBean<T> implements FactoryBean<T>, ApplicationContex
|
|
|
return url;
|
|
|
}
|
|
|
|
|
|
- private LogLevel getLogLevel(RetrofitClient retrofitClient) {
|
|
|
+ private LogLevel getLogLevel(CustomizeRetrofitConfiguration customize, RetrofitClient retrofitClient) {
|
|
|
LogLevel level = retrofitClient.logLevel();
|
|
|
if (level.equals(LogLevel.OFF)) {
|
|
|
- level = retrofitProperties.getLogLevel();
|
|
|
+ level = Optional.firstNotNull(customize.getLogLevel(), retrofitProperties.getLogLevel());
|
|
|
}
|
|
|
return level;
|
|
|
}
|