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

Flutter调用API发送POST请求失败,products参数类型错误

解决方案:Flutter POST请求products字段类型不匹配问题

问题核心

错误提示"products":["Expected a list of items but got type \"int\"."]说明:你的Flutter代码向API发送的products字段是单个整数类型,但API要求该字段必须是数组/列表类型。而Postman测试正常,是因为你在Postman里传的是数组格式。

具体修复步骤

1. 修正请求体中products的格式

检查你的Flutter API Controller代码,找到构造请求体的部分,确保products被包装成数组:

  • 错误示例(单个int):
Map<String, dynamic> requestBody = {
  'products': selectedProductId, // selectedProductId是单个int,不符合要求
  // 其他字段...
};
  • 正确示例(包装为数组):
// 单个产品ID的情况
Map<String, dynamic> requestBody = {
  'products': [selectedProductId], // 把单个int放入数组中
  // 其他字段...
};

// 多个产品ID的情况
List<int> selectedProductIds = [101, 102, 103];
Map<String, dynamic> requestBody = {
  'products': selectedProductIds, // 直接传入List<int>
  // 其他字段...
};

2. 确认请求头与Postman一致

确保请求头的Content-Type和Authorization格式正确,和Postman完全匹配:

final headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer ${yourToken}', // 注意Bearer后有空格
};

3. 调试验证请求体(可选)

发送请求前打印请求体,确认products字段的格式:

print(requestBody); // 输出应包含类似 "products": [101] 的结构

如果使用Dio库,可开启日志拦截器,查看实际发送的请求内容,和Postman的请求体做对比,排查差异。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 00:01:06