Android OkHttp3中HttpLoggingInterceptor使用

目录

    • [一 概述](#一 概述)
      • [1.1 日志级别](#1.1 日志级别)
    • [二 使用](#二 使用)
      • [2.1 引入依赖](#2.1 引入依赖)
      • [2.2 创建对象](#2.2 创建对象)
      • [2.3 添加拦截器](#2.3 添加拦截器)
    • [三 结果展示](#三 结果展示)
      • [3.1 日志级别为BODY](#3.1 日志级别为BODY)
      • [3.2 日志级别为BASIC](#3.2 日志级别为BASIC)
      • [3.3 日志级别为HEADERS](#3.3 日志级别为HEADERS)
    • 参考

一 概述

HttpLoggingInterceptor是OkHttp3提供的拦截器,用来记录HTTP请求和响应的详细信息。

1.1 日志级别

  • BODY
    记录请求和响应的头部信息、body内容,以及BASIC级别的信息。注意,记录body内容可能会消耗资源,并且会读取body数据,这可能会影响请求的执行。
  • BASIC
    记录请求类型、URL、响应状态码以及响应时间。
  • HEADERS
    记录请求和响应的头部信息,以及BASIC级别的信息。
  • NONE
    不记录任何日志。

二 使用

2.1 引入依赖

groovy 复制代码
implementation 'com.squareup.okhttp3:okhttp:4.9.0'
implementation 'com.squareup.okhttp3:logging-interceptor:4.9.1'

2.2 创建对象

kotlin 复制代码
val logInterceptor =  HttpLoggingInterceptor {
    message -> Log.d("retrofit", message)
}.apply {
    level = HttpLoggingInterceptor.Level.BODY
}

2.3 添加拦截器

kotlin 复制代码
 private val okHttpClient: OkHttpClient
        get() =OkHttpClient.Builder()
            //日志拦截器
            .addInterceptor(logInterceptor)
            //请求超时时间
            .connectTimeout(TIME_OUT_SECONDS,TimeUnit.SECONDS)
            .build()

三 结果展示

3.1 日志级别为BODY

3.2 日志级别为BASIC

3.3 日志级别为HEADERS

参考

https://blog.csdn.net/weixin_37477009/article/details/136142311

相关推荐
用户69371750013845 小时前
曾经安卓开发人手一个的 EventBus,为什么现在没人爱用了?
android·android studio
Learn-Share_HY6 小时前
[IT Network]如何配置反向路徑過濾器(rp_filter),以解決路由不對稱問題?
linux·嵌入式硬件·物联网·网络协议·tcp/ip·http·iot
九皇叔叔7 小时前
MySQL ORDER BY 性能优化详解:Using filesort、联合索引、ASC/DESC 与覆盖索引
android·adb
bytebitx7 小时前
MacOS 编译腾讯 Mars XLog 及使用(已16KB对齐)
kotlin·mac·apk
OriginCoding7 小时前
用 AI Agent 协作完成一个 Android TOTP 应用:从需求边界到 v1.0.0
android·ai编程
小镇敲码人7 小时前
【深入浅出】之Qt 事件系统实战:鼠标、键盘、滚轮、窗口与定时器事件
数据库·qt·网络协议·mysql·http
K成长日志8 小时前
BLE不可连接状态--广播态
物联网·网络协议·蓝牙·低功耗·iot·ble
DevOpenClub9 小时前
全球区域与 IP 定位工作台案例方案
大数据·网络·网络协议·tcp/ip
wuyk5559 小时前
从零吃透 Modbus 通信|第 6 章:线圈功能码 05/0F 实现 & Modbus‑TCP 基础入门
c语言·网络·网络协议·tcp/ip
杉氧10 小时前
React 灵魂:深入剖析 Hooks 与副作用(Side Effects)陷阱
android·前端·react native