Aks*_*hay 2 android kotlin okhttp
我最近开始更新 okhttp3 到 4.x
在这样做时,我收到以下构建时间错误:
Using 'url(): HttpUrl' is an error. moved to val
当我尝试从通过调用获得的请求对象中获取 url 时,问题发生了:
例如
call.enque(callback : Callback){
override fun onFailure(call : Call, t:Throwable) {
val url = call.request().url().toString
}
}
Run Code Online (Sandbox Code Playgroud)
我进一步抬头,里面的Url物体Request现在是 val aka final。
此外,他们的升级指南https://square.github.io/okhttp/upgrading_to_okhttp_4/上没有说明
如果您对获取 Url 的其他方式有任何建议,我将不胜感激。
Run Code Online (Sandbox Code Playgroud)Using 'url(): HttpUrl' is an error. moved to val
这意味着您应该将函数调用url()更改为属性 access url。
okhttp 4replaceWith在弃用注释中带有参数,例如 Android Studio 可以通过右键单击/alt-enter 自动提供修复错误:
@Deprecated(
message = "moved to val",
replaceWith = ReplaceWith(expression = "url"),
level = DeprecationLevel.ERROR)
Run Code Online (Sandbox Code Playgroud)
来自评论:
经过进一步调查,我发现 request() 或 Request 对象来自 Retrofit 2。而 Retrofit 2 从 okhttp3 返回调用对象
这是 Android Studio 的问题。您可以通过显式转换为 okhttp 4 类型来解决它,例如(call.request() as Request).url.
| 归档时间: |
|
| 查看次数: |
1312 次 |
| 最近记录: |