project-mirai / mirai-api-http

Mirai HTTP API (console) plugin
GNU Affero General Public License v3.0
1.65k stars 345 forks source link

2.6.1 报错 kotlinx.serialization.json.internal.JsonDecodingException: Expected start of the object '{', but had 'EOF' instead #604

Closed thom802311 closed 2 years ago

thom802311 commented 2 years ago

kotlinx.serialization.json.internal.JsonDecodingException: Expected start of the object '{', but had 'EOF' instead

ryoii commented 2 years ago
  1. 提交完整日志
  2. 表明请求接口
  3. 提交请求参数
  4. 提供复现方式
thom802311 commented 2 years ago

1.完整日志如下, `2022-08-10 19:02:25 I/main: Starting mirai-console... 2022-08-10 19:02:25 I/main: Backend: version 2.12.1, built on 2022-07-31 17:49:27. 2022-08-10 19:02:25 I/main: Frontend Terminal: version 2.12.1, provided by Mamoe Technologies 2022-08-10 19:02:25 I/main: Welcome to visit https://mirai.mamoe.net/ 2022-08-10 19:02:25 W/stderr: SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". 2022-08-10 19:02:25 W/stderr: SLF4J: Defaulting to no-operation (NOP) logger implementation 2022-08-10 19:02:25 W/stderr: SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. 2022-08-10 19:02:26 I/plugin: Successfully loaded plugin net.mamoe.mirai-api-http v2.6.1 2022-08-10 19:02:26 I/plugin: Successfully loaded plugin MCL Addon v2.0.2 2022-08-10 19:02:26 I/main: Prepared built-in commands: autoLogin, help, login, logout, permission, status, stop 2022-08-10 19:02:26 W/net.mamoe.mirai-api-http: USING INITIAL KEY, please edit the key 2022-08-10 19:02:26 I/Mirai HTTP API: **** 2022-08-10 19:02:26 W/stderr: SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". 2022-08-10 19:02:26 W/stderr: SLF4J: Defaulting to no-operation (NOP) logger implementation 2022-08-10 19:02:26 W/stderr: SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. 2022-08-10 19:02:27 I/http adapter: >>> [http adapter] is listening at http://localhost:8080 2022-08-10 19:02:27 I/webhook adapter: >>> [webhook adapter] is running 2022-08-10 19:02:27 I/webhook adapter: >>> [webhook adapter] is attaching destinations [http://localhost/webhook/] 2022-08-10 19:02:27 I/Mirai HTTP API: Http api server is running with verifyKey: INITKEYtmXfaEZ7 2022-08-10 19:02:27 I/Mirai HTTP API: adaptors: [http,webhook] 2022-08-10 19:02:27 I/Mirai HTTP API: **** 2022-08-10 19:02:27 I/MCL Addon: iTXTech MCL Version: 2.1.0-71ec418 2022-08-10 19:02:27 W/MCL Addon: iTXTech Soyuz 未安装,Soyuz MCL Handler 特性已禁用 2022-08-10 19:02:27 I/main: 2 plugin(s) enabled. 2022-08-10 19:02:27 I/main: Auto-login 643386217 2022-08-10 19:02:27 W/stderr: ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console... 2022-08-10 19:02:28 I/Bot.643386217: Loaded account secrets from local cache. 2022-08-10 19:02:28 I/Bot.643386217: Saved account secrets to local cache for fast login. 2022-08-10 19:02:28 I/Bot.643386217: Login successful. 2022-08-10 19:02:28 V/Bot.643386217: Event: BotOnlineEvent(bot=Bot(643386217)) 2022-08-10 19:02:29 I/Bot.643386217: Bot login successful. 2022-08-10 19:02:29 I/main: mirai-console started successfully. 2022-08-10 19:02:29 E/Mah Debug: kotlinx.serialization.json.internal.JsonDecodingException: Expected start of the object '{', but had 'EOF' instead JSON input: array(2) { ["type"]=> string(14) "BotOnlineEvent" ["qq"]=> int(64*****7) }

kotlinx.serialization.json.internal.JsonDecodingException: Expected start of the object '{', but had 'EOF' instead JSON input: array(2) { ["type"]=> string(14) "BotOnlineEvent" ["qq"]=> int(64**7) }

    at kotlinx.serialization.json.internal.JsonExceptionsKt.JsonDecodingException(JsonExceptions.kt:24)
    at kotlinx.serialization.json.internal.JsonExceptionsKt.JsonDecodingException(JsonExceptions.kt:32)
    at kotlinx.serialization.json.internal.AbstractJsonLexer.fail(AbstractJsonLexer.kt:524)
    at kotlinx.serialization.json.internal.AbstractJsonLexer.fail$kotlinx_serialization_json(AbstractJsonLexer.kt:221)
    at kotlinx.serialization.json.internal.AbstractJsonLexer.unexpectedToken(AbstractJsonLexer.kt:204)
    at kotlinx.serialization.json.internal.StringJsonLexer.consumeNextToken(StringJsonLexer.kt:74)
    at kotlinx.serialization.json.internal.StreamingJsonDecoder.beginStructure(StreamingJsonDecoder.kt:41)
    at mirai-api-http-v2.6.1.mirai2.jar//net.mamoe.mirai.api.http.adapter.webhook.dto.WebhookPacket$$serializer.deserialize(WebhookPacket.kt:16)
    at mirai-api-http-v2.6.1.mirai2.jar//net.mamoe.mirai.api.http.adapter.webhook.dto.WebhookPacket$$serializer.deserialize(WebhookPacket.kt:16)
    at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:59)
    at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:36)
    at kotlinx.serialization.json.Json.decodeFromString(Json.kt:100)
    at mirai-api-http-v2.6.1.mirai2.jar//net.mamoe.mirai.api.http.adapter.internal.serializer.BuiltinJsonSerializer.decode(BuiltinJson.kt:76)
    at mirai-api-http-v2.6.1.mirai2.jar//net.mamoe.mirai.api.http.adapter.webhook.WebhookAdapter.hook(WebhookAdapter.kt:92)
    at mirai-api-http-v2.6.1.mirai2.jar//net.mamoe.mirai.api.http.adapter.webhook.WebhookAdapter.access$hook(WebhookAdapter.kt:28)
    at mirai-api-http-v2.6.1.mirai2.jar//net.mamoe.mirai.api.http.adapter.webhook.WebhookAdapter$hook$1.invokeSuspend(WebhookAdapter.kt)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at mirai-api-http-v2.6.1.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:191)
    at mirai-api-http-v2.6.1.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:147)
    at mirai-api-http-v2.6.1.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:15)
    at mirai-api-http-v2.6.1.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:93)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
    at mirai-api-http-v2.6.1.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:191)
    at mirai-api-http-v2.6.1.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:147)
    at mirai-api-http-v2.6.1.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:15)
    at mirai-api-http-v2.6.1.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:93)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
    at mirai-api-http-v2.6.1.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:191)
    at mirai-api-http-v2.6.1.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:147)
    at mirai-api-http-v2.6.1.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:15)
    at mirai-api-http-v2.6.1.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:93)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
    at mirai-api-http-v2.6.1.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:191)
    at mirai-api-http-v2.6.1.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:147)
    at mirai-api-http-v2.6.1.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:15)
    at mirai-api-http-v2.6.1.mirai2.jar[shared]//io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:93)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
    at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:749)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)`
ryoii commented 2 years ago

webhook返回了什么东西,格式不对吧

ryoii commented 2 years ago

应该是server没有响应webhook,或者响应的是空。此时webhook收到不需要处理的包序列化错误。

你开了debug模式所以把错误信息打印出来了。不受影响

ryoii commented 2 years ago

已修复