在此代码之后引发以下异常。有趣的是,它在调试和单步执行代码时起作用。在最后一行抛出异常。
科特林 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)