Ktor: JsonDecodingException на действительном JSON
Исключение ниже выбрасывается после этого кода. Интересно, что это работает при отладке и пошаговом выполнении кода. Исключение выбрасывается в последней строке.
Котлин 1.3.60
Ктор 1.2.6
kotlinx.serialization 0.14.0
} catch (throwable: Throwable) {
when (throwable) {
is ClientRequestException -> {
val statusCode = throwable.response.status.value
val byteArray = ByteArray(throwable.response.content.availableForRead)
throwable.response.content.readFully(byteArray, 0, byteArray.size)
val text = String(byteArray, 0, byteArray.size, Charsets.UTF_8)
logger.log("text is: $text")
val isJson = throwable.response.headers["Content-Type"]?.startsWith("application/json") ?: false
val failure = if (isJson) {
val json = Json(JsonConfiguration.Default).parseJson(text).jsonObject
Если не перейти к отладчику, в журнале указано, что text
пусто. Как это может быть? Это работает до того, как весь контент будет перенесен?
kotlinx.serialization.json.JsonDecodingException: Invalid JSON at 0: Can't begin reading from here
at kotlinx.serialization.json.internal.JsonReader.fail(JsonReader.kt:293)
at kotlinx.serialization.json.internal.JsonReader.fail$default(JsonReader.kt:292)