日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android日志拦截器,Retrofit2日志拦截器的使用

發布時間:2023/12/19 Android 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android日志拦截器,Retrofit2日志拦截器的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

顯示樣式如下,復制內容的時候使用鼠標中鍵進行選中

打印內容:code,請求方式,url,請求頭,請求體,返回json

class LoggerInterceptor : Interceptor {

override fun intercept(chain: Interceptor.Chain?): Response {

val orgRequest = chain!!.request()

val response = chain.proceed(orgRequest)

val body = orgRequest.body()

val sb = StringBuilder()

if (orgRequest.method() == "POST" && body is FormBody) {

val body1 = body

for (i in 0 until body1.size()) {

sb.append(body1.encodedName(i) + "=" + body1.encodedValue(i) + ",")

}

sb.delete(sb.length - 1, sb.length)

//打印post請求的信息

Logger.t(AppConfigs.LOGGER_NET_TAG).d("code=" + response.code() + "|method=" + orgRequest.method() + "|url=" + orgRequest.url()

+ "\n" + "headers:" + orgRequest.headers().toMultimap()

+ "\n" + "post請求體:{" + sb.toString() + "}")

} else {

//打印get請求的信息

Logger.t(AppConfigs.LOGGER_NET_TAG).d("code=" + response.code() + "|method=" + orgRequest.method() + "|url=" + orgRequest.url()

+ "\n" + "headers:" + orgRequest.headers().toMultimap())

}

//返回json

val responseBody = response.body()

val contentLength = responseBody!!.contentLength()

val source = responseBody.source()

source.request(java.lang.Long.MAX_VALUE)

val buffer = source.buffer()

var charset = UTF8

val contentType = responseBody.contentType()

if (contentType != null) {

try {

charset = contentType.charset(UTF8)

} catch (e: UnsupportedCharsetException) {

return response

}

}

if (contentLength != 0L) {

//打印返回json

//json日志使用鼠標中鍵進行選中

Logger.t(AppConfigs.LOGGER_NET_TAG).json(buffer.clone().readString(charset))

}

return response

}

}

在Application中進行初始化Logger

val strategy = PrettyFormatStrategy.newBuilder()

.showThreadInfo(false) // 是否顯示線程信息,默認為ture

.methodCount(1) // 顯示的方法行數

.methodOffset(0) // 隱藏內部方法調用到偏移量

.tag("tag")

.build()

Logger.addLogAdapter(object : AndroidLogAdapter(strategy) {

override fun isLoggable(priority: Int, tag: String?): Boolean {

return BuildConfig.DEBUG

}

})

除了需要依賴Retrofit2相關依賴外還需要依賴

implementation 'com.orhanobut:logger:2.2.0'

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

總結

以上是生活随笔為你收集整理的Android日志拦截器,Retrofit2日志拦截器的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。