package com.example.week2lianxi.retrofit; import java.util.concurrent.TimeUnit; import okhttp3.OkHttpClient; import retrofit2.Retrofit; import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory; import retrofit2.converter.gson.GsonConverterFactory; /** * 使用单列模式封装Retrofit */ public class RetrofitManager { private static final String BASEURL = "http://120.27.23.105/product/"; private static Retrofit retrofit; private static RetrofitManager retrofitManager; //提供共有的方法供外界访问 public static RetrofitManager newInstance() { if (retrofitManager == null) { synchronized (RetrofitManager.class) { retrofitManager = new RetrofitManager(); } } return retrofitManager; } //构造方法私有化 private RetrofitManager() { retrofit = getRetrofit(); } //构建Ok请求 private OkHttpClient getOkHttpClient() { return new OkHttpClient.Builder() .connectTimeout(5000, TimeUnit.MILLISECONDS) .build(); } //构建Retrofit private Retrofit getRetrofit() { return new Retrofit.Builder() .client(getOkHttpClient()) .baseUrl(BASEURL) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .build(); } //通过动态代理生成相应的Http请求 public <T> T creat(Class<T> t) { return retrofit.create(t); } }
Retrofit单列模式封装
最新推荐文章于 2019-04-29 09:18:56 发布