|
|
|
@ -36,16 +36,41 @@ public class RetrofitUtil { |
|
|
|
private static OkHttpClient initOkHttpClient(int timeout) { |
|
|
|
|
|
|
|
try { |
|
|
|
|
|
|
|
// 创建一个信任所有证书的 TrustManager
|
|
|
|
TrustManager[] trustAllCerts = new TrustManager[]{ |
|
|
|
new X509TrustManager() { |
|
|
|
@Override |
|
|
|
public void checkClientTrusted(X509Certificate[] chain, String authType) {} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void checkServerTrusted(X509Certificate[] chain, String authType) {} |
|
|
|
|
|
|
|
@Override |
|
|
|
public X509Certificate[] getAcceptedIssuers() { |
|
|
|
return new X509Certificate[0]; |
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
// 初始化 SSLContext
|
|
|
|
SSLContext sslContext = SSLContext.getInstance("TLS"); |
|
|
|
sslContext.init(null, trustAllCerts, new SecureRandom()); |
|
|
|
|
|
|
|
OkHttpClient.Builder builder = new OkHttpClient.Builder(); |
|
|
|
builder.readTimeout(timeout, TimeUnit.SECONDS); |
|
|
|
builder.writeTimeout(timeout, TimeUnit.SECONDS); |
|
|
|
builder.connectTimeout(timeout, TimeUnit.SECONDS); |
|
|
|
builder.sslSocketFactory(sslContext.getSocketFactory(), (X509TrustManager) trustAllCerts[0]); |
|
|
|
builder.hostnameVerifier(SSLSocketClient.getHostnameVerifier()); |
|
|
|
return builder.build(); |
|
|
|
} catch (Throwable t) { |
|
|
|
LoggerUtil.e("initOkHttpClient", StringUtil.getThrowableStr(t)); |
|
|
|
return new OkHttpClient.Builder().sslSocketFactory(SSLSocketClient.getSSLSocketFactory(), SSLSocketClient.getX509TrustManager()) |
|
|
|
.retryOnConnectionFailure(true) |
|
|
|
.hostnameVerifier(SSLSocketClient.getHostnameVerifier()) |
|
|
|
.connectTimeout(timeout, TimeUnit.SECONDS).readTimeout(timeout, TimeUnit.SECONDS) |
|
|
|
.writeTimeout(timeout, TimeUnit.SECONDS).build(); |
|
|
|
} catch (Throwable t) { |
|
|
|
LoggerUtil.e("initOkHttpClient", StringUtil.getThrowableStr(t)); |
|
|
|
return new OkHttpClient.Builder().connectTimeout(timeout, TimeUnit.SECONDS) |
|
|
|
.retryOnConnectionFailure(true).addInterceptor(new BaseInterceptor()) |
|
|
|
.readTimeout(timeout, TimeUnit.SECONDS).writeTimeout(timeout, TimeUnit.SECONDS).build(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|