retrofit+okhttp 请求框架简单封装
首先需要第三方依赖导入
//rx全家桶->网络请求
api 'com.tbruyelle.rxpermissions2:rxpermissions:+'
//okhttp依赖
api 'com.squareup.okhttp3:okhttp:3.11.0'
//okhttp日志拦截器
api 'com.squareup.okhttp3:logging-interceptor:3.11.0'
//gson
api 'com.google.code.gson:gson:2.8.5'
//rxjava
api 'io.reactivex.rxjava2:rxjava:2.2.10'
//rxandroid
api 'io.reactivex.rxjava2:rxandroid:2.1.1'
//retrofit网络请求框架
api 'com.squareup.retrofit2:retrofit:2.4.0'
//retrofit下gson插件->网络请求回数据自动使用gson解析
api 'com.squareup.retrofit2:converter-gson:2.4.0'
//retrofit下使用rxjava线程调度插件
api 'com.squareup.retrofit2:adapter-rxjava2:2.4.0'
使用单例模式创建请求框架
public class NetWorkManager {
private Retrofit retrofit;
private static NetWorkManager netWorkManager = new NetWorkManager();
private NetWorkManager(){};
public static NetWorkManager getInstance(){
return netWorkManager;
}
public Retrofit retrofit(){
if(retrofit == null){
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient.Builder http = new OkHttpClient.Builder();
//添加OKHTTP的log日志拦截
http.addInterceptor(interceptor);
http.connectTimeout(1, TimeUnit.MINUTES);
http.readTimeout(1, TimeUnit.MINUTES);
Retrofit.Builder builder = new Retrofit.Builder();
builder.client(http.build());
//使用工厂模式添加Rxjava 和 Gson
builder.addConverterFactory(GsonConverterFactory.create());
builder.addCallAdapterFactory(RxJava2CallAdapterFactory.create());
builder.baseUrl(API.BASEURL);//API 需要创建接口类 提供请求的IP地址
retrofit = builder.build();
}
return retrofit;
}
}