package com.king.tv.http; import com.king.tv.Constants; import java.util.concurrent.TimeUnit; import okhttp3.OkHttpClient; import retrofit2.Retrofit; import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory; import retrofit2.converter.gson.GsonConverterFactory; /** * @author Jenly <a href="mailto:jenly1314@gmail.com">Jenly</a> * @since 2017/2/13 */ public class APIRetrofit { /** * 默认超时时间 单位/秒 */ private static final int DEFAULT_TIME_OUT = 10; private static Retrofit sRetrofit; private static OkHttpClient sOKHttpClient; public static APIService getAPIService(){ return getInstance().create(APIService.class); } public static Retrofit getInstance(){ if(sRetrofit== null){ synchronized (APIRetrofit.class){ if(sRetrofit == null){ sRetrofit = new Retrofit.Builder() .baseUrl(Constants.BASE_URL) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .client(getsOKHttpClient()) .build(); } } } return sRetrofit; } public static OkHttpClient getsOKHttpClient(){ if(sOKHttpClient == null){ synchronized (APIRetrofit.class){ if(sOKHttpClient == null){ sOKHttpClient = new OkHttpClient.Builder() .connectTimeout(DEFAULT_TIME_OUT, TimeUnit.SECONDS) .readTimeout(DEFAULT_TIME_OUT, TimeUnit.SECONDS) .writeTimeout(DEFAULT_TIME_OUT, TimeUnit.SECONDS) .build(); } } } return sOKHttpClient; } }