Kotlin 中的 Okhttp3,String.mediaType() 不起作用

Posted

技术标签:

【中文标题】Kotlin 中的 Okhttp3,String.mediaType() 不起作用【英文标题】:Okhttp3 in Kotlin, String.mediaType() does not work 【发布时间】:2019-12-12 22:38:45 【问题描述】:

这是我正在尝试执行的代码,但它不起作用。

 val JSON = String.format("application/json; charset=utf-8").toMediaType()
  (headers as Map<String, String>).toHeaders()

我确实导入了:import okhttp3.MediaType 我需要做什么才能使其识别 toMediaType 和 toHeaders 方法?

【问题讨论】:

你为什么要打电话给String.format?好像没必要 我的实际代码中没有。但是试图找出它为什么不能识别 .toMediaType,我试着看看它是否有帮助。对 kotlin 还是有点了解,好吧,尝试了 val JSON : String 和另一个,不知道我需要导入同伴,但现在我知道了 【参考方案1】:

扩展函数在伴随对象中:

import okhttp3.MediaType.Companion.toMediaType
import okhttp3.Headers.Companion.toHeaders

【讨论】:

【参考方案2】:

将导入添加到我的 gradle 文件以强制版本 4.7.2 解决了它

implementation "com.squareup.okhttp3:okhttp:4.7.2"

【讨论】:

以上是关于Kotlin 中的 Okhttp3,String.mediaType() 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

尝试创建 OkHttpClient 对象时出现 kotlin/TypeCastException

「okhttp3 4.9.3 版本简单解析」

无法解析方法'create(okhttp3.MediaType, java.util.List<java.lang.String>)'

如何解决公共抽象乐趣入队的参数过多(responseCallback:Callback):okhttp3.Call中定义的单位

Kotlin 中的 STRING_TOO_LARGE 字符串

Kotlin 版 天气客户端