You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 20:14:48