retrofit接口日志拦截器

我们在使用retrofit调用后台接口的时候,往往由于封装的比较严密,我们在查看自己请求的参数和获取返回的原始数据的时候比较麻烦,那么我们都会希望能够在封装的请求基类里面进行统一的日志打印,这时候就需要构建一个拦截器。
Android studio的引入:

    compile 'com.github.zhaokaiqiang.klog:library:1.6.0'
    compile 'com.squareup.okhttp3:logging-interceptor:3.8.0'

在配置请求基类里面添加相应的拦截器以及KLog日志打印方法:

    public static ApiService getDefault() {
        if (SERVICE == null) {

            //手动创建一个OkHttpClient并设置超时时间
            OkHttpClient.Builder httpClientBuilder = new OkHttpClient.Builder();
            httpClientBuilder.connectTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS);
            HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
                @Override
                public void log(String message) {
                    KLog.json("TAG", message);
                }
            });
            interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
            httpClientBuilder.addInterceptor(interceptor);

            SERVICE = new Retrofit.Builder()
                    .client(httpClientBuilder.build())
                    .addConverterFactory(GsonConverterFactory.create())
                    .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                    .baseUrl(Url.BASE_URL)
                    .build().create(ApiService.class);
        }
        return SERVICE;
    }

猜你喜欢

转载自blog.csdn.net/d38825/article/details/78893008
今日推荐