retrofit接口日志拦截器

本文介绍如何在Android应用中使用Retrofit时配置日志打印功能。通过添加OkHttp的LoggingInterceptor和KLog库,可以在封装的请求基类中统一打印请求参数及返回的原始数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们在使用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;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值