public class HttpManager { private static Retrofit retrofit; private static Retrofit retrofitQueryApk; private static Retrofit retrofitDownloadApk; private static HttpManager instance; private HttpManager(){ // 日志拦截器 HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor( new HttpLoggingInterceptor.Logger() { @Override public void log(String message) { Log.i("retrofit = "," " + message); } }) .setLevel(HttpLoggingInterceptor.Level.BODY); // 进度监听拦截器 Interceptor progressInterceptor = new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { Response originalResponse = chain.proceed(chain.request()); return originalResponse.newBuilder() .body(new ProgressResponseBody(originalResponse.body())) .build(); } }; OkHttpClient mOkHttpClient = new OkHttpClient().newBuilder() .connectTimeout(10, TimeUnit.SECONDS) // 设置超时时间 .readTimeout(10, TimeUnit.SECONDS) // 设置读取超时时间 .writeTimeout(10, TimeUnit.SECONDS) // 设置写入超时时间 .cache(new Cache(OPEApplication.context.getCacheDir(), 10 * 1024 * 1024)) // 10MB缓存 .addInterceptor(loggingInterceptor) .build(); OkHttpClient progressOkHttpClient = new OkHttpClient.Builder() .connectTimeout(120, TimeUnit.SECONDS) // 设置超时时间 .addInterceptor(progressInterceptor) .build(); retrofit = new Retrofit .Builder() .baseUrl(Interface.URL) .client(mOkHttpClient) .addConverterFactory(JacksonConverterFactory.create(new JacksonConfiguration().configure())) .addCallAdapterFactory(RxJavaCallAdapterFactory.createWithScheduler(Schedulers.io())) .build(); retrofitQueryApk= new Retrofit .Builder() .baseUrl("http://******/") // .client(mOkHttpClient) .addConverterFactory(JacksonConverterFactory.create(new JacksonConfiguration().configure())) .addCallAdapterFactory(RxJavaCallAdapterFactory.createWithScheduler(Schedulers.io())) .build(); retrofitDownloadApk= new Retrofit.Builder() .baseUrl("http://******/") .client(progressOkHttpClient) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .build(); } public static HttpManager getInstance() { if (null == instance) { synchronized (HttpManager.class) { if (null == instance) { instance = new HttpManager(); } } } return instance; } public static IApi getHttpImpl() { getInstance(); return retrofit.create(IApi.class); } public static IApi getNewApk(){ getInstance(); return retrofitQueryApk.create(IApi.class); } public static IApi downloadApk(){ getInstance(); return retrofitDownloadApk.create(IApi.class); } }
网络请求工具类
最新推荐文章于 2019-12-30 21:26:40 发布