json - 如何在 kotlin 中调试生成的 API - responseBody 仅支持 JSON 正文错误
问题描述
我正在尝试向我的应用程序发送一个文本片段,并且我正在使用 OpenApi 生成的库。这是我遇到问题的功能:
protected inline fun <reified T: Any?> responseBody(body: ResponseBody?, mediaType: String? = JsonMediaType): T? {
if(body == null) {
return null
}
println("INSIDE responseBODY $body")
val bodyContent = body.string()
println("bodyContent $bodyContent")
if (bodyContent.isEmpty()) {
return null
}
println("mediaType $mediaType")
val jsonBodyContent = JSONObject(bodyContent)
println("JSON BodyConent $jsonBodyContent")
return when(mediaType) {
JsonMediaType -> {
println("Serializer ")
println(Serializer.moshi.adapter(T::class.java).fromJson(bodyContent))
Serializer.moshi.adapter(T::class.java).fromJson(bodyContent)
}
else -> throw UnsupportedOperationException("responseBody currently only supports JSON body.")
}
}
控制台日志如下:
bodyContent {"os":"7c8092ef-74cd-4fda-b24e-804d975788a3","application":{"id":"4f789733-eef7-465b-a5d3-680329fb5f80","name":"JETBRAINS","version":"1.0.0","platform":"MACOS","onboarded":false}}
mediaType text/plain
JSON BodyConent {"os":"7c8092ef-74cd-4fda-b24e-804d975788a3","application":{"onboarded":false,"name":"JETBRAINS","id":"4f789733-eef7-465b-a5d3-680329fb5f80","version":"1.0.0","platform":"MACOS"}}
2021-09-27 15:09:55,971 [ 108564]
ERROR - llij.ide.plugins.PluginManager - responseBody currently only supports JSON body.
我不确定如何将其转换bodyContent
为 JSON(如果我什至应该这样做?)。它确实看起来像 JSON,但它mediaType
是text/plain
. 有小费吗?
解决方案
推荐阅读
- sql - 在访问查询中将组合框值作为比较运算符传递?
- reactjs - react-select 异步请求方法
- design-patterns - 设计模式工厂或单例或抽象工厂或构建器?
- c++ - 如何在 Fastor 或 Xtensor 中编写快速的 c++ 惰性评估代码?
- r - 运行 t 检验时如何修复错误
- android-studio - 如何修复 Android 4.0.1 编译器类路径
- c++ - 如何存储以 0 开头的数字的第一位?(例如 09080)
- python - 我正在将分类器模型应用于具有相应系列的熊猫系列并出现此错误,我该如何解决?请帮助
- flutter - DraggableScrollableSheet 在滚动前捕捉到顶部
- c++ - AC_CHECK_LIB 在 mingw64 中失败