【API测试工具错误报告】 错误码: 错误 0 错误: Unexpected token 'd', "data: {"id"... is not valid J...

2026年06月02日 17:29 31.14 秒 success

错误信息

【API测试工具错误报告】 错误码: 错误 0 错误: Unexpected token 'd', "data: {"id"... is not valid JSON 模型: gpt-5.5 接口: https://www.dmxapi.cn/v1/chat/completions 令牌: sk-MyB...6Rs0 时间: 2026/6/2 17:28:11

AI 解决方案

🔍 报错分析


1. 🌐 错误翻译


原文:Unexpected token 'd', "data: {"id"... is not valid JSON
译文:遇到意外的符号 'd',"data: {"id"... 不是有效的 JSON 格式

2. 🎯 原因分析


您遇到的错误是典型的JSON解析失败。根本原因在于:您使用的API测试工具期望接口返回一个纯JSON格式的响应,但实际收到的是Server-Sent Events (SSE) 格式的数据流。SSE格式以 data: 前缀开头,这不是标准的JSON,导致工具的JSON解析器在读取到第一个字符 d 时便无法识别并报错。

3. 💡 解决方案


您有两种主要的解决途径:

方案一:检查并修改请求参数(推荐)
在请求头或请求体中,尝试明确指定响应格式为 text/event-stream,或者查找API是否支持返回纯JSON。例如,在请求体中检查是否误设了 "stream": false

// 示例:明确请求非流式(纯JSON)响应
{
  "model": "gpt-5.5",
  "messages": [{"role": "user", "content": "你好"}],
  "stream": false // 关键:设置为false以获取JSON对象
}

方案二:使用支持SSE的客户端或代码
如果您确实需要流式响应(stream: true),则需要使用能够解析SSE格式的工具或自行编写解析逻辑。

# Python 示例:使用 `requests` 库处理SSE流
import requests
import json

url = "https://www.dmxapi.cn/v1/chat/completions"
headers = {"Authorization": "Bearer sk-MyB...6Rs0"}
data = {
    "model": "gpt-5.5",
    "messages": [{"role": "user", "content": "你好"}],
    "stream": True
}

response = requests.post(url, headers=headers, json=data, stream=True)
for line in response.iter_lines():
    if line:
        decoded_line = line.decode('utf-8')
        if decoded_line.startswith('data:'):
            # 移除 "data: " 前缀,解析JSON
            json_str = decoded_line[len('data: '):]
            if json_str.strip() == '[DONE]':
                break
            chunk = json.loads(json_str)
            print(chunk['choices'][0]['delta'].get('content', ''), end='')

4. 🛡️ 预防措施


  • 查阅文档:在使用任何API前,务必仔细阅读其官方文档,明确支持的请求参数和响应格式(JSON或SSE)。

  • 工具选择:使用支持流式响应(SSE)的API测试工具,如Postman(最新版)、Apifox或Insomnia,它们能正确解析 data: 前缀。

  • 明确预期:在代码中处理响应时,应先根据响应头 Content-Type(如 application/jsontext/event-stream)判断格式,再调用相应的解析器。