85 lines
2.8 KiB
Java
85 lines
2.8 KiB
Java
package com.xscm.moduleutil.utils;
|
|
|
|
|
|
import com.xscm.moduleutil.base.CommonAppContext;
|
|
|
|
import java.net.Proxy;
|
|
import java.security.KeyManagementException;
|
|
import java.security.NoSuchAlgorithmException;
|
|
import java.security.SecureRandom;
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
import javax.net.ssl.SSLContext;
|
|
import javax.net.ssl.TrustManager;
|
|
import javax.net.ssl.X509TrustManager;
|
|
|
|
import okhttp3.OkHttpClient;
|
|
import retrofit2.Retrofit;
|
|
|
|
public class ApiHelper {
|
|
private static final String TAG = "ApiHelper";
|
|
|
|
private static ApiHelper mInstance;
|
|
private Retrofit mRetrofit;
|
|
private OkHttpClient mHttpClient;
|
|
|
|
private ApiHelper() {
|
|
this(30, 30, 30);
|
|
}
|
|
|
|
public ApiHelper(int connTimeout, int readTimeout, int writeTimeout) {
|
|
try {
|
|
X509TrustManager trustAllCert = new X509TrustManager() {
|
|
@Override
|
|
public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) {
|
|
}
|
|
|
|
@Override
|
|
public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) {
|
|
}
|
|
|
|
@Override
|
|
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
|
|
return new java.security.cert.X509Certificate[]{};
|
|
}
|
|
};
|
|
SSLContext sslContext = null;
|
|
sslContext = SSLContext.getInstance("SSL");
|
|
sslContext.init(null, new TrustManager[]{trustAllCert}, new SecureRandom());
|
|
|
|
OkHttpClient.Builder builder = new OkHttpClient.Builder()
|
|
// .addInterceptor(new WifiProxyInterceptor(MyApplication.getInstance()))
|
|
.proxy(Proxy.NO_PROXY)
|
|
.sslSocketFactory(sslContext.getSocketFactory(), trustAllCert)
|
|
.hostnameVerifier((hostname, session) -> true)
|
|
.connectTimeout(connTimeout, TimeUnit.SECONDS)
|
|
.readTimeout(readTimeout, TimeUnit.SECONDS)
|
|
.writeTimeout(writeTimeout, TimeUnit.SECONDS);
|
|
|
|
mHttpClient = builder.build();
|
|
buildRetrofit(CommonAppContext.getInstance().getCurrentEnvironment().getServerUrl());
|
|
} catch (KeyManagementException | NoSuchAlgorithmException e) {
|
|
throw new RuntimeException(e);
|
|
}
|
|
}
|
|
|
|
public static ApiHelper getInstance() {
|
|
if (mInstance == null) {
|
|
mInstance = new ApiHelper();
|
|
}
|
|
return mInstance;
|
|
}
|
|
|
|
public ApiHelper buildRetrofit(String baseUrl) {
|
|
mRetrofit = new Retrofit.Builder()
|
|
.baseUrl(baseUrl)
|
|
.client(mHttpClient)
|
|
.build();
|
|
return this;
|
|
}
|
|
|
|
public <T> T createService(Class<T> serviceClass) {
|
|
return mRetrofit.create(serviceClass);
|
|
}
|
|
}
|