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

    }

  • 相关阅读:
    IntelliJ IDEA 常用快捷键
    IntelliJ IDEA 高效率配置
    Eclipse 设置保存代码时自动格式化
    SQL Server 事务隔离级别详解
    网络安全,互联网金融,高并发
    net user命令集合详解
    SQL不同服务器数据库之间的数据操作整理(完整版)
    sql优化
    在 Windows 上遇到非常多 TIME_WAIT 連線時應如何處理
    mvc和iis工作原理
  • 原文地址:https://www.cnblogs.com/ysxy/p/7987042.html
Copyright © 2011-2022 走看看