1

在此代码之后引发以下异常。有趣的是,它在调试和单步执行代码时起作用。在最后一行抛出异常。

科特林 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)
4

0 回答 0