liangjingkanji / Net

Android 基于协程/OkHttp网络请求工具
http://liangjingkanji.github.io/Net/
MIT License
1.91k stars 214 forks source link

指定泛型为Model情况下缓存无法读取 #110

Closed tanranran closed 2 years ago

tanranran commented 2 years ago

问题描述

指定泛型为Model情况下缓存无法读取,原因是缓存模式下,response.request.kType 读取为空

期望行为

指定泛型为Model情况下缓存可以读取

如何复现

将Net 项目中sample的PreviewCacheFragment 请求代码改为下面的代码

        scopeNetLife {
            // 然后执行这里(网络请求)
            binding.tvFragment.text = Get<List<HomeBannerModel>>("banner/json") {
                setCacheMode(CacheMode.WRITE)
            }.await().toString()
            Log.d("日志", "网络请求")
        }.preview(true) {
            // 先执行这里(仅读缓存), 任何异常都视为读取缓存失败
            binding.tvFragment.text = Get<List<HomeBannerModel>>("banner/json") {
                setCacheMode(CacheMode.READ)
            }.await().toString()
            Log.d("日志", "读取缓存")
        }

版本

liangjingkanji commented 2 years ago

能fork仓库复现问题吗? 我好直接拉取你的仓库修复问题

tanranran commented 2 years ago

@liangjingkanji 已fork https://github.com/tanranran/Net 有问题的位置在PreviewCacheFragment中

liangjingkanji commented 2 years ago

好的, 容我看下, 你也可以尝试自行修复

cipchk commented 2 years ago

@liangjingkanji 类似问题,不过我的是缓存序列化时 response.request.kTypenull 值;有什么解决办法吗?

liangjingkanji commented 2 years ago

已修复请使用最新版本