Retrofit2日志拦截器的使用

2019-08-05 09:49| 发布者: |

显示样式如下,复制内容的时候使用鼠标中键进行选中

打印内容:code,请求方式,url,请求头,请求体,返回json

class loggerinterceptor : interceptor {
 override fun intercept: response {
 val orgrequest = chain!!.request
 val response = chain.proceed
 val body = orgrequest.body
 val sb = stringbuilder
 if  == "post" && body is formbody) {
 val body1 = body
 for ) {
 sb.append + "=" + body1.encodedvalue + ",")
 sb.delete
 //打印post请求的信息
 logger.t.d + "|method=" + orgrequest.method + "|url=" + orgrequest.url
 + "
" + "headers:" + orgrequest.headers.tomultimap
 + "
" + "post请求体:{" + sb.tostring + "}")
 } else {
 //打印get请求的信息
 logger.t.d + "|method=" + orgrequest.method + "|url=" + orgrequest.url
 + "
" + "headers:" + orgrequest.headers.tomultimap)
 //返回json
 val responsebody = response.body
 val contentlength = responsebody!!.contentlength
 val source = responsebody.source
 source.request
 val buffer = source.buffer
 var charset = utf8
 val contenttype = responsebody.contenttype
 if  {
 try {
 charset = contenttype.charset
 } catch  {
 return response
 if  {
 //打印返回json
 //json日志使用鼠标中键进行选中
 logger.t.json.readstring)
 return response
}

在application中进行初始化logger

val strategy = prettyformatstrategy.newbuilder
 .showthreadinfo // 是否显示线程信息,默认为ture
 .methodcount // 显示的方法行数
 .methodoffset // 隐藏内部方法调用到偏移量
 .tag
 .build
 logger.addlogadapter {
 override fun isloggable: boolean {
 return buildconfig.debug
 })

除了需要依赖retrofit2相关依赖外还需要依赖

implementation 'com.orhanobut:logger:2.2.0'

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持萬仟网。

<
>
关于我们
AB模版网成立于2014年,我们是一家专注用户体验设计开发与互联网品牌建设的设计公司,创立至今为2000多位客户提供了创新与专业的设计方案。设计服务范围包括:交互原型设计、产品视觉设计、网站设计与开发建设、移动及软件产品界面设计、图标设计、品牌及平面设计等。

联系我们

13588889999服务时间:9:00-18:00)

admin@adminbuy.cn

官方微信官方微信

部门热线

前   台:13588889999
业务部:13588889999
客服部:13588889999
技术部:13566667777
人事部:13566667777

咨询电话13588889999 返回顶部
返回顶部