代码改变世界

Retrofit 的封装类

2018-01-01 19:14  wang_chunqi  阅读(224)  评论(0)    收藏  举报

import jingou.jo.com.myzklx.net.Api;

import okhttp3.OkHttpClient;

import retrofit2.Retrofit;

import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory;

import retrofit2.converter.gson.GsonConverterFactory;

 

/**

 * Created by 杨杰 on 2017/12/30.

 */

 

public class RetrofitHelper {

    private static OkHttpClient okHttpClient;

    private static ServiceApi serviceApi;

 

    static {

 

        initokhttp();

 

    }

 

 

    public static void initokhttp() {

 

        if (okHttpClient == null) {

 

            synchronized (RetrofitHelper.class) {

 

                if (okHttpClient == null) {

 

                    okHttpClient = new OkHttpClient.Builder()

 

                            .build();

                }

 

            }

 

        }

 

    }

 

    public static ServiceApi getservice() {

 

        if (serviceApi == null) {

 

            synchronized (RetrofitHelper.class) {

 

                if (serviceApi == null) {

 

                    serviceApi = onCreatApi(ServiceApi.class, Api.HOST);

 

 

                }

 

            }

 

        }

 

        return serviceApi;

 

    }

 

    public static <T> T onCreatApi(Class<T> tClass, String url) {

 

        Retrofit retrofit = new Retrofit.Builder()

 

                .baseUrl(url)

 

                .addConverterFactory(GsonConverterFactory.create())

 

                .addCallAdapterFactory(RxJavaCallAdapterFactory.create())

 

                .build();

 

        return retrofit.create(tClass);

 

    }

}