package com.share.mvpsdk.helper; import com.share.mvpsdk.helper.okhttp.CacheInterceptor; import com.share.mvpsdk.utils.StringUtils; import java.io.IOException; import java.util.concurrent.TimeUnit; import okhttp3.Interceptor; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; import okhttp3.logging.HttpLoggingInterceptor; import retrofit2.Retrofit; import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory; import retrofit2.converter.gson.GsonConverterFactory; /** * Created by Horrarndoo on 2017/9/7. *
*/
public class RetrofitCreateHelper {
private static final int TIMEOUT_READ = 20;
private static final int TIMEOUT_CONNECTION = 10;
private static String Authorization="",token="";
private static RetrofitCreateHelper retrofitCreateHelper=null;
private static final HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor()
.setLevel(HttpLoggingInterceptor.Level.BODY);
private static CacheInterceptor cacheInterceptor = new CacheInterceptor();
private static OkHttpClient.Builder okhttpClientBuilder=null;
/*private static OkHttpClient okHttpClient = new OkHttpClient.Builder()
//SSL证书
.sslSocketFactory(TrustManager.getUnsafeOkHttpClient())
.hostnameVerifier(org.apache.http.conn.ssl.SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER)
//打印日志
.addInterceptor(interceptor)
//设置Cache拦截器
.addNetworkInterceptor(cacheInterceptor)
.addInterceptor(cacheInterceptor)
.cache(HttpCache.getCache())
//time out
.connectTimeout(TIMEOUT_CONNECTION, TimeUnit.SECONDS)
.readTimeout(TIMEOUT_READ, TimeUnit.SECONDS)
.writeTimeout(TIMEOUT_READ, TimeUnit.SECONDS)
//失败重连
.retryOnConnectionFailure(true)
.build();*/
public static RetrofitCreateHelper getInstance(){
if (null==retrofitCreateHelper){
synchronized (RetrofitCreateHelper.class){
if (null==retrofitCreateHelper)retrofitCreateHelper=new RetrofitCreateHelper();
}
}
return retrofitCreateHelper;
}
public RetrofitCreateHelper(){
if (null==okhttpClientBuilder)okhttpClientBuilder=new OkHttpClient.Builder();
okhttpClientBuilder.connectTimeout(10000,TimeUnit.SECONDS);
okhttpClientBuilder.addInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request original = chain.request();
Request.Builder requestBuilder = original.newBuilder().header("Authorization", Authorization);
Request request = requestBuilder.build();
return chain.proceed(request);
}
});
okhttpClientBuilder.addNetworkInterceptor(cacheInterceptor);
okhttpClientBuilder.addInterceptor(interceptor);
}
public