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

Flutter HTTP POST请求返回400错误,求排查原因

分析Flutter POST请求400错误的可能原因及解决方向

400错误属于客户端请求格式/参数错误,结合你的代码,从以下几个方向排查:

1. 请求Body格式不匹配后端要求

当前代码中,http.post传入的body是Map类型,默认会以application/x-www-form-urlencoded格式发送请求。如果后端接口要求接收application/json格式的请求体,就会返回400错误。

修改建议:
将请求体转为JSON字符串,并添加对应的Content-Type头:

Future createNewTag(String tag, String companyId) async {
  final createTagUrl =
      Uri.parse(AppConstants.BASE_URL + AppConstants.CREATE_NEW_TAG_URI);
  final response = await http.post(
    createTagUrl,
    headers: {
      'Authorization': 'Bearer ' + AppConstants.TOKEN,
      'X-API-KEY': AppConstants.API_KEY,
      'Content-Type': 'application/json' // 添加JSON格式头
    },
    body: jsonEncode({ // 转为JSON字符串
      'company_id': companyId,
      'tag': tag
    }),
  );
  print(response.statusCode);
  print(response.body);
  return json.decode(response.body);
}

2. 参数值或字段名不符合要求

  • 取消你代码中注释的print语句,确认textController.text和companyId的实际值:是否为空字符串?是否包含后端不允许的特殊字符?companyId的格式是否符合后端要求(比如后端需要整数类型,但你传入了字符串)?
  • 检查字段名是否和后端接口文档完全一致:比如后端是否要求字段名为companyId而非company_id?

3. 请求头或认证信息错误

  • 确认AppConstants.TOKEN和AppConstants.API_KEY是否有效:TOKEN是否过期?API_KEY是否拼写正确?
  • 检查是否遗漏了后端要求的其他必填请求头。

4. 接口地址拼接错误

打印拼接后的createTagUrl,确认地址是否正确:比如BASE_URL末尾是否带有斜杠,和CREATE_NEW_TAG_URI拼接后是否出现//这类错误路径?


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 06:54:37