From 8582316cb8ccfc8f7de46b5a38cf5d8fd4054fad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E5=8B=A4=E6=B0=91?= Date: Thu, 16 Apr 2026 18:44:46 +0800 Subject: [PATCH] =?UTF-8?q?fix(network):=20=E8=A7=A3=E5=86=B3SSE=E6=B5=81?= =?UTF-8?q?=E5=BC=8F=E6=8E=A5=E5=8F=A3=E7=9A=84=E6=97=A5=E5=BF=97=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E9=98=BB=E5=A1=9E=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加Content-Type检查,对event-stream类型的响应跳过body日志记录 - 避免source.request(MAX)调用阻塞SSE流式传输 - 移除多余的空行以优化代码结构 --- .../com/nova/brain/glass/repository/HeaderInterceptor.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/nova/brain/glass/repository/HeaderInterceptor.kt b/app/src/main/java/com/nova/brain/glass/repository/HeaderInterceptor.kt index 5ab16c6..8a5faf5 100644 --- a/app/src/main/java/com/nova/brain/glass/repository/HeaderInterceptor.kt +++ b/app/src/main/java/com/nova/brain/glass/repository/HeaderInterceptor.kt @@ -44,6 +44,12 @@ class HeaderInterceptor(val context: Context) : Interceptor { val response = chain.proceed(request) + // SSE 流式接口(text/event-stream)跳过 body 日志,避免 source.request(MAX) 阻塞流式传输 + val contentType = response.header("Content-Type") ?: "" + if (contentType.contains("event-stream", ignoreCase = true)) { + return response + } + response.body()?.also { if (!bodyHasUnknownEncoding(headers) && hasBody(response)) { val source: BufferedSource = it.source() @@ -62,7 +68,6 @@ class HeaderInterceptor(val context: Context) : Interceptor { var charset = UTF8 it.contentType()?.also { its -> charset = its.charset(Charset.forName("UTF-8"))!! } - if (isPlaintext(buffer)) { buffer.clone().readString(charset).log() }