0
g
原创首发

OkHttp 上一次请求被中断,下次请求使用同一个Client 导致请求路径错误问题

ccTyL 发表于 2025-08-09 09:29 49
评论
0/240
  • 断点
    for (Call call : OKHttpClient.client().dispatcher().runningCalls()) { if (tag.equals(call.request().tag())) { call.cancel(); } }
    2025-08-11 09:23  回复
    1139423796017500160
    • ccTyL  回复 @断点
      原来要带tag的吗。不过那个cancelAll() 方法确实存在
      2025-08-11 09:44   回复 1314408005793603584
  • 断点
    for (Call call : OKHttpClient.client().dispatcher().queuedCalls()) { if (tag.equals(call.request().tag())) { call.cancel(); } } 、
    2025-08-11 09:23  回复
    1139423796017500160
    • 断点
      找了下伪代码 Request request = new Request.Builder() .url(url) .post(RequestBody.create(mediaType, requestBody)) .tag(tag) .build()
      2025-08-11 09:22  回复
      1139423796017500160
      • 断点
        描述的中断,是怎么做的,用了那些api做,上面的dispatcher().cancelAll();是谁的api,我用了这么久没用过这个函数,通常取消一个请求,发起请求的时候设置tag,用tag标记,需要取消的时候取消。
        2025-08-11 09:21  回复
        1139423796017500160
        • ccTyL  回复 @断点
          大佬来了,代码是这样的:https://github.com/cctyl/simple-backup/blob/master/app/app/src/main/java/io/github/cctyl/backup/service/BackupService.java 这个文件的358行,是一个进度监听器,回调里有个i()方法,这里会抛出异常
          2025-08-11 09:43   回复 1314408005793603584
        • 断点  回复 @ccTyL
          如果你的业务要取消,那就把请求取消就好了。这个中断我以为是什么中断api,没想到是自己抛出异常。。。
          2025-08-11 10:05   回复 1139423796017500160
        • ccTyL  回复 @断点
          是要取消,但是不仅仅是请求取消,光取消请求做不到我的要求,是要后续的所有流程都要取消。只能这样做,还要什么解决办法吗,抄一下
          2025-08-11 10:13   回复 1314408005793603584
      推荐文章
      浅析 OkHttp 源码 - Callback 的调用流程
      关于 OkHttp 和 Retrofit 的使用,你需要注意的点
      在Retrofit中如何使用多个不同的BaseUrl
      OkHttp中ResponseBody无法第二次调用string方法
      Postman你不知道的小技巧
      Android OkHttp + RxJava 实现断点续传下载更新
      给服务器post数据报错:Expected BEGIN_OBJECT but was STRING at line 1 column 70 path $.data
      OKHttp3访问接口,结果显示:okhttp3.internal.http.RealResponseBody@5fc8ef2
      android开发网络框架OkHttp
      依赖第三方包重复,删掉一个就ok了,我遇到的是网络请求包okhttp3
      Vue3,实现biu~biu~biu~的效果
      遇到一个没有直接给进度监听回调的库怎么办呢?
      记开发简易个人博客系统
      Android打包任务定制清理项目加编译
      Flutter 热修复方案研究报告
      k8s 部署重启报错
      B站爬虫如何尽可能加大覆盖面?
      Flutter做个播放器,卡成狗屎!
      Android 界面参数追踪工具类:通过生命周期回调监控传参
      Flutter开发,我遇到个啥问题呢?1个小时才发现
      AndroidStudio 版本 <==> AGP版本 <==> Gradle版本 兼容性速查表
      问题记录:PatternsRequestCondition.getPatterns()" is null
      Android Studio 2025 kts配置signingConfigs
      Flutter封装日志输出工具类
      ElementUI的Table如何显示多行,如果超过的话就显示省略号呢?
      Flutter中的点击事件
      NFC有源和无源的区别
      mybatis plus生成的mapper参数都是arg1 arg2 arg3 这种
      报了个错:When allowCredentials is true
      Flutter 存储键值数据 SharePreference
      文章目录