为OkGo网络请求增加自定义log功能

2023-11-17

OkGo是基于Okhttp3的封装,所以只需要增加自定义拦截器就可以实现自定义log。(OkGo有一个默认的log拦截器HttpLoggingInterceptor,如果没有特别需求则无需自定义)

第一步自定义拦截器(参考OkGo中的拦截器实现,自己决定具体的打印格式及控制方式)

public class MyHttpLogInterceptor implements Interceptor {

    private static final Charset UTF8 = Charset.forName("UTF-8");
    @Override
    public Response intercept(Chain chain) throws IOException {
        Request request = chain.request();

        if(YDLog.showHttpRequest()) {
            StringBuilder builder = new StringBuilder("Request[");
            builder.append(request.url())
                    .append("]\nheader=[\n")
                    .append(request.headers())
                    .append("\n]body=[\n")
                    .append(isPlaintext(request.body().contentType()) ? bodyToString(request) : "body: maybe [file part] , too large too print , ignored!")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为OkGo网络请求增加自定义log功能 的相关文章

随机推荐

  • 【嵌入式学习-C语言篇】 char & short & int 的使用

    嵌入式学习 C语言篇 char short int 的使用 三种数据类型常用场景 智能家居 网关协议中mac地址上报 网关 网关 Gateway 又称网间连接器 协议转换器 网关在传输层以上实现网络互连 是最复杂的网络互连设备 仅用于两个高
  • STM32 进阶教程 7 -  C与C++混合编程

    前言 在嵌入式开发过程中经常会用到第三个芯片 设备 这些第三方的芯片提供的DEMO程序或驱动程序有时候是C 如果先前的系统用C语言写的就会出现点问题 往往需先将C 的驱动程序自已手动改成C语言再用 本节给大家介给一下如何在KEL MDK环境
  • html cgi改变字体颜色,在CGI文件中导致错误的HTML变量

    我在从我的cgi文件中打印特定变量时出现问题 我收到这个变量 从我的网页中调用totalCost 然后尝试打印它 但没有任何反应 所有其他变量可以从网页成功接收 并通过我的cgi文件打印到另一个网页上 除了这一个 我检查过大小写敏感但是没有
  • jQuery 入门教程(14): 添加HTML元素

    使用jQuery可以方便的添加新的HTML元素 下面的方法用于添加HTML元素 append 在指定的元素的尾部添加一个新内容 prepend 在指定的元素里前部添加新内容 after 在指定元素后添加新内容 before 在指定元素的前面
  • Vue3 -- teleport传送门

    目录 teleport传送门 例 蒙层特效 目标效果 代码演示 页面效果 未使用teleport存在的问题 使用teleport实现目标效果 完整代码 总结 teleport传送门 Teleport 是一种能够移动 DOM到Vue根节点之外
  • 自学区块链:原理、技术及应用——什么是区块链(笔记)

    Bitcoin和区块链有很深的渊源 但Bitcoin与区块链两者不能等同 区块链是Bitcoin的底层技术 除了Bitcoin 还有很多其他的区块链技术应用 什么是 区块链 时间戳服务器对以区块 Block 形式存在的一组数据实施随机散列
  • 华为云计算HCIE之oceanstor仿真器的使用操作

    华为云计算HCIE之oceanstor仿真器的使用操作 一 登录检查oceanstor的状态 二 配置存储资源 1 创建硬盘域 2 创建存储池 3 创建LUN 4 创建LUN组 5 创建主机 6 创建主机组 7 创建映射关系 三 配置存储H
  • idea 连接云mysql_IntelliJ IDEA 连接数据库 详细过程

    连接到MySQL数据库 调出Database面板 IDEA配置Database数据源需要我们在IDEA的主界面中找到View gt ToolWindows gt Database 如下图所示 1 选择数据源 在IDEA中新建一个Java工程
  • T系接口源数据格式

    item apiStack name esi value endpoint mode android osVersion 9 26 0 protocolVersion 3 0 ultronage true data dinamic TB d
  • Unity + Jenkins自动打包 (二)构建Jenkins项目以及编写Python、Unity脚本

    1 新建Jenkens项目 在上一篇中 完成了Jenkins的安装和初始化 以及权限设置 查看上一篇 Jenkins安装 点此 现在打开浏览器 输入http localhost 8081 当然 需要改成你自己设置的Jenkins端口号 然后
  • lua c++中的一种回调解决方法

    见很多人发问cocos2dx 3 版本 lua 函数回调问题 我在项目中是这样解决的 因为我是使用了cocos 带有的 lua 绑定脚本 python写的 cocos2d x tools tolua genbindings py 在生成绑定
  • mac .ssh文件位置

    1 Finder gt 前往文件夹 gt 输入 ssh 2 打开终端 输入cd ssh cd ssh
  • vue组件库的开发流程

    欢迎点击领取 前端面试题进阶指南 前端登顶之巅 最全面的前端知识点梳理总结 开发流程 1 创建项目 vue cli 公司现有架构 2 调整项目静态目录结构 3 使用webpack相关库模式打包编译 4 使用npm或者公司源地址发布到你需要的
  • 向List Control中添加ACCESS数据内容

    转 给List Control 添加变量tt 加入引入ADO使用智能指针 import c program files common files system ado msado15 dll no namespace rename EOF
  • MySQL - 索引的隐藏和删除

    隐藏索引 MySQL 8开始支持隐藏索引 隐藏索引提供了更人性化的数据库操作 隐藏索引 顾名思义 让索引暂时不可见 不会被优化器使用 默认情况下索引是可见的 隐藏索引可以用来测试索引的性能 验证索引的必要性时不需要删除索引 可以先将索引隐藏
  • 【qt应用软件Focus Note++】

    本专栏介绍了使用Qt开发的一些小型桌面软件 其中包括软件功能介绍 软件截图 主要代码等内容 此外 本专栏还提供完整的软件源码和安装包供有需要的同学下载 我的目标是开发一些简洁美观且实用的客户端小软件 如果能够为大家提供有用的软件或对学习有益
  • 赶紧来修炼内功~字符串函数详解大全(一)

    目录 1 strlen 重点 模拟实现 法一 法二 法三 2 strcpy 重点 模拟实现 3 strcat 重点 模拟实现 4 strcmp 重点 模拟实现 1 strlen strlen函数是用来计算字符串长度的 重点 字符串以 0 作
  • Ipsec phase1 and phase2

    终于明白是怎么回事了 困扰我好多天了 网上的资料鱼龙混杂 直到这位大虾的出现 第一阶段 有主模式和积极模式2种 只有remote vpn和Easy vpn是积极模式的 其他都是用主模式来协商的 让IKE对等体彼此验证对方并确定会话密钥 这个
  • 初探oVirt-体验

    日期 2015 9 2 2016 11 15 time 16 40 主机 node72 node73 node86 node93 目的 初探oVirt 体验 操作内容 一 基础环境 1 官方建议 1 oVirt Engine 需求 最低 双
  • 为OkGo网络请求增加自定义log功能

    OkGo是基于Okhttp3的封装 所以只需要增加自定义拦截器就可以实现自定义log OkGo有一个默认的log拦截器HttpLoggingInterceptor 如果没有特别需求则无需自定义 第一步自定义拦截器 参考OkGo中的拦截器实现