import com.squareup.okhttp.OkHttpClient; //导入方法依赖的package包/类
@Bean
@ConditionalOnMissingBean
public OkHttpClient okHttp2Client() throws IOException {
OkHttpClient okHttpClient = new OkHttpClient();
if (properties.getCache().getMode() != OkHttpProperties.Cache.Mode.NONE) {
okHttpClient.setCache(okHttp2Cache());
}
if (cookieHandler != null) {
okHttpClient.setCookieHandler(cookieHandler);
}
OkHttpProperties.Timeout connectTimeout = properties.getConnectTimeout();
if (connectTimeout != null) {
okHttpClient.setConnectTimeout(connectTimeout.getValue(), connectTimeout.getUnit());
}
OkHttpProperties.Timeout readTimeout = properties.getReadTimeout();
if (readTimeout != null) {
okHttpClient.setReadTimeout(readTimeout.getValue(), readTimeout.getUnit());
}
OkHttpProperties.Timeout writeTimeout = properties.getWriteTimeout();
if (writeTimeout != null) {
okHttpClient.setWriteTimeout(writeTimeout.getValue(), writeTimeout.getUnit());
}
if (dns != null) {
okHttpClient.setDns(dns);
}
okHttpClient.setFollowRedirects(properties.isFollowRedirects());
okHttpClient.setFollowSslRedirects(properties.isFollowSslRedirects());
okHttpClient.setRetryOnConnectionFailure(properties.isRetryOnConnectionFailure());
if (applicationInterceptors != null && !applicationInterceptors.isEmpty()) {
okHttpClient.interceptors().addAll(applicationInterceptors);
}
if (networkInterceptors != null && !networkInterceptors.isEmpty()) {
okHttpClient.networkInterceptors().addAll(networkInterceptors);
}
if (configurers != null) {
for (Configurer configurer : configurers) {
configurer.configure(okHttpClient);
}
}
return okHttpClient;
}