You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js调用FastAPI时出现RequestContentLengthMismatchError问题排查

解决RequestContentLengthMismatchError问题

核心问题

你手动设置的Content-Length头存在计算错误:

  • JSON.stringify()返回的字符串length是字符数,但HTTP协议中Content-Length要求的是字节数(UTF-8编码下,中文、特殊符号等部分字符会占用多个字节),导致实际请求体字节数和头中声明的数值不匹配。
  • 同时你写错了请求头字段:Connect应为Connection,这不是当前错误的直接原因,但属于配置失误需要修正。

解决方案

直接移除手动设置的Content-Length头,现代Node.js环境中的fetch会自动计算并设置正确的Content-Length值,同时修正Connection头:

const body = JSON.stringify({ data: value })
const response = await fetch(`${FAST_API_HOST}/api/data`, {
  method: 'POST',
  headers: {
    'Accept': 'application/json; charset=utf-8',
    'Content-Type': 'application/json',
    'Connection': 'keep-alive', // 修正头字段名称
  },
  body
})
.then(async res => {
  if (res.status === 200) return res.json();
  else throw new Error(await res.text())
})

额外说明

如果特殊场景下必须手动计算字节数(不推荐),可以用new TextEncoder().encode(body).length获取UTF-8编码后的准确字节长度,但完全没必要——让fetch自动处理是最可靠的方式。

内容的提问来源于stack exchange,提问作者hammies

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 03:15:23