android retrofit+okhttp 请求框架简单封装

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;
    }
}

版权声明:本文为qq_46041134原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。