Android抓包获取网络接口数据,轻松集成AndroidToolkit

AndroidToolkit

项目Github地址
在Android开发中,我们经常会碰到需要抓取网络接口日志的场景,虽然已经有了很多抓取接口的工具,但是,还是免不了需要设置网络的一些繁琐步骤,如果能在应用中直接集成一个工具包来实现它并节约时间,那将会提供很多便利。这个工具包目前主要有以下功能:

  • 可以帮助你更方便地查看网络接口日志。
  • 你可以在列表中查看网络接口请求的状态、地址和时间。
  • 在详情页中,由于json已经上色,整个数据看起来更直观。
  • 你也可以通过其他应用将数据分享给你想分享的人

top
bottom

步骤 1 : 更新根项目 build.gradle

buildscript {
    repositories {
        mavenCentral()
    }
}

步骤 2 : 在 module的 build.gradle 添加依赖

dependencies {
    implementation 'io.github.weilianyang:toolkit:1.0.0'
}

步骤 3 : 初始化 Toolkit

  • 我建议你尽可能早的在Application的onCreate方法中初始化toolkit
class App : Application() {

    override fun onCreate() {
        super.onCreate()
        // set config data
        val config = ToolkitConfig.Builder().setDebugMode(BuildConfig.DEBUG).build()
        // init toolkit
        ToolkitPanel.init(this, config)
    }
}

步骤 4 : 展示 Toolkit 入口

    // Request the permission of the floating window and display the toolkit entrance
    // The logic of applying for permissions and callbacks 
    // has been automatically processed inside the method
    ToolkitPanel.showFloating(this)

步骤 5 : 捕获网络接口日志

  • 如果你正在使用okhttp,只需要添加这个已定义好的拦截器 ApiRecordInterceptor 就可以实现日志捕获
fun getOkHttpClient(): OkHttpClient {
    val builder = OkHttpClient().newBuilder()
   
    builder.run {

        // Add the interceptor defined in the package
        addInterceptor(ApiRecordInterceptor())

        connectTimeout(TIMEOUT, TimeUnit.SECONDS)
        readTimeout(TIMEOUT, TimeUnit.SECONDS)
        writeTimeout(TIMEOUT, TimeUnit.SECONDS)
    }
    return builder.build()
}
  • 如果不想使用拦截器,也可以使用库中提供的方法手动保存数据,就像这样:
fun saveRecord() {
    val bean = ApiRecordBean(
        url = "https://developer.android.com/",
        method = "POST",
        headers = "{\"os\":\"android\", \"language\":\"en\"}",
        request = "{\"param1\": \"first param\",\"param2\": \"second param\"}",
        response = "{\"code\": code, \"success\": true, \"msg\": \"execute msg\"}",
        requestTime = System.currentTimeMillis(),
        duration = 100,
        httpCode = 200
    )
    DataManager.saveRecord(bean)
}

后续功能规划

  • 崩溃数据详情展示
  • 界面元素的通用信息展示
  • APP相关性能指标展示
  • 其他在开发中的实际痛点场景

欢迎留言与讨论

  • 如果你发现组件无法正常工作, 请留言或发布 issue
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值