升级OkHttp 4.12.0后调用receivedResponseAtMillis()报错,求解决方案
解决OkHttp 4.12.0中
receivedResponseAtMillis()/sentRequestAtMillis()的报错问题 OkHttp 4.12.0版本对okhttp3.Response的API做了破坏性变更:将receivedResponseAtMillis()和sentRequestAtMillis()这两个方法,改为了只读属性(val),因此不能再通过方法调用的方式(加括号)访问它们。
修正后的代码写法
写法1(保持原有的run块风格)
fun retrofit2.Response<*>.responseTimeMs(): Long = raw().run { receivedResponseAtMillis - sentRequestAtMillis }
写法2(拆分变量的风格)
fun retrofit2.Response<*>.responseTimeMs(): Long { val received = raw().receivedResponseAtMillis val sent = raw().sentRequestAtMillis return received - sent }
关键变更点
- 移除方法调用的括号:把
receivedResponseAtMillis()改为receivedResponseAtMillis - 同理,
sentRequestAtMillis()改为sentRequestAtMillis
这两个属性的功能和原来的方法完全一致,只是访问方式从方法调用变成了直接读取属性。
内容的提问来源于stack exchange,提问作者sridhar venkatesan
相关产品推荐
相关产品推荐

