Retrofit OkHttp3 打印日志 网络请求参数配置

1、用过Retrofit的朋友肯定知道使用Retrofit进行网络网络请求非常的方便简洁,但是要打印网络请求的日志还是要自己另想办法。昨天在网上找了一圈,发现要打印日志,大部分的帖子都是引入OkHttp3的日志库。

implementation 'com.squareup.okhttp3:logging-interceptor:3.4.1'

2、通过OkHttp3 对日志和其他网络请求参数进行配置,通过下面这句进行关联

关联okhttp

new Retrofit.Builder().client(httpClient.build())

关联gson

new Retrofit.Builder().addConverterFactory(GsonConverterFactory.create(gson))

完整代码如下:

HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
 //设置日志Level
 if (BuildConfig.DEBUG) {
     // development build
     logging.setLevel(HttpLoggingInterceptor.Level.BODY);
 } else {
     // production build
     logging.setLevel(HttpLoggingInterceptor.Level.BASIC);
 }
 OkHttpClient.Builder httpClient = new OkHttpClient.Builder()
         .connectTimeout(15, TimeUnit.SECONDS)
         .readTimeout(15, TimeUnit.SECONDS)
         .writeTimeout(15, TimeUnit.SECONDS)
         //添加拦截器到OkHttp,这是最关键的
         .addInterceptor(logging);

 Log.w("tan","postBodyRequest");
 Gson gson=new Gson();
 //步骤4:创建Retrofit对象
 Retrofit retrofit = new Retrofit.Builder()
         .baseUrl("http://XXX.XXX.X.XXX:9001/dp-bussintf/") // 设置 网络请求 Url
         .addConverterFactory(GsonConverterFactory.create(gson)) //设置使用Gson解析(记得加入依赖)
         .client(httpClient.build())
         .build();

HttpLoggingInterceptor为我们提供了四种不同的Level,它们分别是NONE, BASIC, HEADERS, BODY
分别表示

  • NONE:没有记录
  • BASIC:日志请求类型,URL,请求体的大小,响应状态和响应体的大小
  • HEADERS:日志请求和响应头,请求类型,URL,响应状态
  • BODY:日志请求和响应标头和正文


3、自定义日志(重写 HttpLoggingInterceptor )可以参考这文章

https://blog.csdn.net/u010618194/article/details/75151960

 

 

ps:

参考文章:https://www.jianshu.com/p/8e84b827452a

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值