From 1a76b6b8a1e704018f9674e643c7e2bfa85495c8 Mon Sep 17 00:00:00 2001 From: testuser Date: Sat, 29 Nov 2025 16:53:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96sendPostStream=E6=96=B9?= =?UTF-8?q?=E6=B3=95=EF=BC=8C=E6=8F=90=E9=AB=98=E5=B9=B6=E5=8F=91=E5=A4=84?= =?UTF-8?q?=E7=90=86=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/cn/hutool/ai/core/BaseAIService.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/hutool-ai/src/main/java/cn/hutool/ai/core/BaseAIService.java b/hutool-ai/src/main/java/cn/hutool/ai/core/BaseAIService.java index 18d365a506..08cfa49b37 100644 --- a/hutool-ai/src/main/java/cn/hutool/ai/core/BaseAIService.java +++ b/hutool-ai/src/main/java/cn/hutool/ai/core/BaseAIService.java @@ -151,15 +151,25 @@ public class BaseAIService { os.write(jsonInputString.getBytes()); os.flush(); } + // 检查响应状态 + if (connection.getResponseCode() != HttpURLConnection.HTTP_OK) { + callback.accept("{\"error\":\"HTTP-" + connection.getResponseCode() + "\"}"); + return; + } // 读取流式响应 try (BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()))) { String line; while ((line = reader.readLine()) != null) { + if (line.startsWith("data:")) { + line = line.substring(5).trim(); + } + if ("[DONE]".equals(line)) break; // 调用回调函数处理每一行数据 callback.accept(line); } } + } catch (Exception e) { callback.accept("{\"error\": \"" + e.getMessage() + "\"}"); } finally { -- Gitee