这里有个很尴尬的case
https://github.com/qiniu/android-sdk/blob/5674a4ab5e983b359df91ca544f6b1a22d0423ff/library/src/main/java/com/qiniu/android/http/CountingRequestBody.java#L71
ForwardingSink,实现了这个方法,okhttp内部的抽象方法。这个代码通过抛出异常的方式去中断/取消。从log信息看,这个位置应该是走到了throw new然后抛出异常,然而okhttp内部并没有对外抛出。
此问题最主要是,出现在okhttp3。将okhttp更新到4.2.2,问题就没了,就变成了以下这个样子 。
正常被中断
奇怪不,奇怪不,奇怪不。啥都不改变的情况下。。。
然后去查okhttp升级的日志,搜索“timeout”,所有关于这个的更新,后面都有个http2,所以在这个代码里面,用了这个配置将所有请求都变为http,就成功了useHttps(false)
然而到底okhttp做了什么,还是不知道,为什么会有这个问题