/** * retrofit请求工具类 * Created by ${ShinnyYang} on 2019/1/25. */ public class RetrofitUtil { /** * 超时时间 */ private static volatile RetrofitUtil mInstance; private static OkHttpClient mOkHttpClient; /** * 单例封装 * * @return */ public static RetrofitUtil getInstance() { if (mInstance == null) { synchronized (RetrofitUtil.class) { if (mInstance == null) { mInstance = new RetrofitUtil(); } } } return mInstance; } /** * 初始化Retrofit */ public AllApi initRetrofit() { Retrofit mRetrofit = new Retrofit.Builder() .client(initOKHttp()) // 设置请求的域名 .baseUrl(ApiAddress.api) // 设置解析转换工厂 .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .build(); return mRetrofit.create(AllApi.class); } public static OkHttpClient initOKHttp() { if (mOkHttpClient == null) { HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor( new HttpLoggingInterceptor.Logger() { @Override public void log(String message) { Logger.e("okhttp==" + message); } } ); loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY); mOkHttpClient = new OkHttpClient.Builder() .addInterceptor(new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { Request request = chain.request() .newBuilder() .addHeader("AuthToken", App.userInfoSp.getString(SPKey.UserInfoSp.token, "")) .build(); return chain.proceed(request); } }) .connectTimeout(12, TimeUnit.SECONDS) .readTimeout(12, TimeUnit.SECONDS) .writeTimeout(12, TimeUnit.SECONDS) .addInterceptor(loggingInterceptor) .build(); } return mOkHttpClient; } }