fix(network): 解决SSE流式接口的日志记录阻塞问题
- 添加Content-Type检查,对event-stream类型的响应跳过body日志记录 - 避免source.request(MAX)调用阻塞SSE流式传输 - 移除多余的空行以优化代码结构
这个提交包含在:
父节点
e2cae52dbc
当前提交
8582316cb8
@ -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()
|
||||
}
|
||||
|
||||
正在加载...
在新工单中引用
屏蔽一个用户