zoukankan      html  css  js  c++  java
  • Retrofit的封装类


    public class RetrofitHelper {

        private static OkHttpClient okHttpClient;

        private static ShopApi shopApi;

        static {
            initOkHttpClient();
        }

        /**
         * 初始化 OkHttpClient
         */
        private static void initOkHttpClient() {

            if (okHttpClient == null) {
                synchronized (RetrofitHelper.class) {
                    if (okHttpClient == null) {
                        okHttpClient = new OkHttpClient.Builder()
                                .build();
                    }
                }
            }

        }

        /**
         * 定义一个泛型方法
         *
         * @param clazz
         * @param url
         * @param <T>
         * @return
         */
        public static <T> T createAPI(Class<T> clazz, String url) {
            Retrofit retrofit = new Retrofit.Builder()
                    .baseUrl(url)
                    .client(okHttpClient)
                    .addConverterFactory(GsonConverterFactory.create())
                    .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                    .build();
            return retrofit.create(clazz);
        }

        public static ShopApi getShopAPI() {
            if (shopApi == null) {
                synchronized (RetrofitHelper.class) {
                    if (shopApi == null) {
                        shopApi = createAPI(ShopApi.class, Constants.BASE_URL);
                    }
                }
            }
            return shopApi;
        }

    }

  • 相关阅读:
    01 网络基础
    01 ansible的基本介绍
    10 面向对象的编程
    03 docker容器镜像基础
    09 异常处理
    08 输入输出
    07 数据结构
    02 docker的基本用法
    01 docker容器技术基础入门
    06 字符串
  • 原文地址:https://www.cnblogs.com/ysxy/p/7987042.html
Copyright © 2011-2022 走看看