根据迁移指南,当我替换“response.body()?”时,我正在从okhttp 3.14迁移到okhttp4。 调用“response.body?” IDE在代码的最后一行显示错误“无法访问'body':它在'Response'中是程序包专用的”
val request = Request.Builder().url(url).build()
val response = coreNetwork.getOkHttp().newCall(request).execute()
val stream = response.body?.source()?.inputStream()
如果我正在尝试“response.body()?” 调用显示错误“使用'body():ResponseBody?'是一个错误。按预期移至val“。
最佳答案
这是一个预期的错误消息,它在分支的4.2.x版本中查看Response.kt
的代码:
@JvmName("-deprecated_body")
@Deprecated(
message = "moved to val",
replaceWith = ReplaceWith(expression = "body"),
level = DeprecationLevel.ERROR)
fun body(): ResponseBody? = body
所以解决方案是调用看起来像您已经在做的
response.body?
...有关详细信息,请参见:https://github.com/square/okhttp/blob/okhttp_4.2.x/okhttp/src/main/java/okhttp3/Response.kt#L202