【cronet】msnet,让你像Retrofit一样使用cronet

相关文章:

Gihub地址

msnet

类似 Retrofit ,这是对 okcronet 的封装,让你也能快速获得 HTTP3/QUIC 带来的优势。使用方式与 Retrofit 一致。甚至可以做到低成本迁移,只需替换对应的 import 引用即可。

引入

引入本库

scss 复制代码
    // 引入
    implementation("io.github.limuyang2:msnet:1.0.0")

引入 cronet 库

中国大陆内

scss 复制代码
    // 中国大陆建议的引入方式,其中包含了本地 so 库
    implementation("org.chromium.net:cronet-api:119.6045.31")
    implementation("org.chromium.net:cronet-common:119.6045.31")
    implementation("org.chromium.net:cronet-embedded:119.6045.31")

Google 官方提供的包不是最新的,如你想使用与chromium同步的最新版本,可以访问官方的存储桶获得google cloud

海外 Google Play

ruby 复制代码
    // 如果你是直接使用 Google Play 的海外app,不需要考虑中国大陆的情况,可以直接使用 Google Play 提供的 so,不需要在APK中打包 so 文件
    // 参考链接 https://developer.android.com/develop/connectivity/cronet/start#kts
    //
    implementation("com.google.android.gms:play-services-cronet:18.0.1")

使用

  • 创建接口
kotlin 复制代码
interface Api {

    @GET("lishi/api.php")
    fun todayCall(): Call<ResponseBody>

    @GET("lishi/api.php")
    @DisableCache
    suspend fun todayResponse(): Response<ResponseBody>
}
  • 发起请求
kotlin 复制代码
    // 创建 CronetClient
    val cronetClient = CronetClient.Builder(cronetEngine).build()

    // 创建 msnet
    val msnet = MSNet.Builder()
        .cronet(cronetClient)
        .baseUrl("https://api.oick.cn/")
        .build()

    // 获取接口
    val api = msnet.create<Api>()

    // 请求网络获取结果
    val response = api.todayResponse()

    // 输出结果
    println("Result: ${response.isSuccessful} \n ${response.body()?.string()}")

新的接口注解

  • DisableCache - 不使用缓存

  • PRIORITY - 请求优先级

从 Retrofit 迁移

只需全局替换引用即可

mac全局替换快捷键:shift + command + R

混淆

已自动包含收缩和混淆规则。

Thanks

retrofit

相关推荐
事圆则缓23 分钟前
Java 8 Lambda、Stream、Optional 与 Android 边界:从回调语法到运行时兼容
android·java
mmsx35 分钟前
Android 地图十万要素不卡顿:空间网格 + 渐进式加载的移动端实践
android·大数据·opengl
Godikov2 小时前
Android 工业终端保活实战:前台服务 + 开机自启 + 更新自启的三重保障
android
字节暗面2 小时前
SO加固强度怎么量化?腾讯ACE与FairGuard静态分析实测
android·逆向
终端安全笔记4 小时前
描述文件、企业证书、MDM 不是三个名字,是三层
android·ios·智能手机
字节暗面4 小时前
一次游戏安全SO静态分析记录:腾讯ACE与FairGuard加固强度对比
android·逆向工程·游戏加固
传奇开心果编程5 小时前
【Jetpack Compose基础语法学与练】第9课 SideEffect副作用 + LaunchedEffect,处理异步任务和生命周期
android·学习·ui·kotlin·android jetpack
2401_833269306 小时前
RecyclerView多布局详解
android
v_34836087627 小时前
Android_8 zygote启动分析
android
消失的旧时光-19437 小时前
Android 系统层扫盲 11:JNI 到底是什么?Java / Kotlin 是怎么调用 C/C++ 的?
android·binder·zygote·system_server·aops