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日志拦截器的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小米金融是小米公司的吗(小米官方售后服务
- 下一篇: 自定义背景android,Android