Stream error: error decoding response body
错误信息
API Error: Stream error: error decoding response body
AI 解决方案
🔍 报错分析
1. 🌐 错误翻译
原文:API Error: Stream error: error decoding response body
译文:API错误:流错误:解码响应体出错
2. 🎯 原因分析
该错误表明在处理API响应时,服务端返回的数据流无法被正确解码。常见原因包括:
3. 💡 解决方案
#### 步骤1:检查响应数据的完整性和格式
// 以Node.js为例,增加响应数据处理逻辑
const response = await fetch(apiUrl);
// 先检查响应状态码,非2xx直接处理错误
if (!response.ok) {
throw new Error(`API请求失败,状态码: ${response.status}`);
}
// 检查响应头,确认数据类型和编码
const contentType = response.headers.get('content-type');
if (!contentType?.includes('application/json')) {
throw new Error(`响应格式错误,预期JSON,实际: ${contentType}`);
}
// 处理可能的压缩数据(如gzip)
const encoding = response.headers.get('content-encoding');
if (encoding === 'gzip') {
const decompressed = await new Response(response.body, {
headers: { 'Content-Encoding': 'identity' }
}).text();
return JSON.parse(decompressed);
}
// 正常解析响应体
try {
const data = await response.json();
return data;
} catch (e) {
// 解析失败时,打印原始响应体排查问题
const rawBody = await response.text();
console.error('原始响应体:', rawBody);
throw new Error(`响应体解码失败: ${e.message},原始数据: ${rawBody.slice(0, 500)}`);
}
#### 步骤2:若为服务端问题,联系API提供方
若确认客户端解码逻辑正确,可排查服务端是否: