android - Flutter HTTP post请求发送对象列表
问题描述
我已成功从服务器获得 200 响应代码,但我的 API 返回响应代码 0。当我尝试在邮递员中发送请求时,它响应为 1。也许我的 JSON 中确实缺少要发送到正文中的内容。我是 Flutter 的新手,我想发送一个带有如下对象列表的 HTTP 请求:我非常感谢任何帮助。
[
{
"product_id": 14,
"quantity": 3,
"payment": "COD"
},
{
"product_id": 3,
"quantity": 2,
"payment": "COD"
}
]
这是我的 HTTP 帖子功能:
Future<dynamic> checkItem({Map headers, body, encoding}) async {
Map<String, String> headers = {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Authorization': 'Bearer $token'
};
try {
final response = await http.post(
'${_url}transactions/check',
headers: headers,
body: body,
encoding: Encoding.getByName("utf-8"));
if (response.statusCode == 200) {
String data = response.body;
return jsonDecode(data);
} else {
print(response.statusCode);
}
} catch (error) {
print(error);
}
}
这就是我调用传递 JSON 的函数的方式:
List<String> chckList = checkoutList.map((e) => json.encode(e.toJson())).toList();
String strBody = json.encode(chckList);
final res = await interface.checkOutItem(body: strBody);
这是我的模型对象中的 toJson:
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['product_id'] = this.product_id;
data['quantity'] = this.quantity;
data['payment'] = this.payment;
return data;
}
解决方案
您代码中的请求似乎全部到位。问题可能在于您使用的 API 无法处理您发送的有效负载。
推荐阅读
- php - 在我的 Ubuntu 服务器上更改我的 PHP 版本
- c++ - 添加两个具有运算符重载的数组对象导致分段错误
- scala - 如何使用 flatMap 展平元组的一个组件
- ruby-on-rails - 为什么我不能在确保块内更新 ActiveRecord?
- ios - 从 xcassets 中的图像创建 URL 总是返回 nil
- java - 如何在流中访问 getter 和 setter
- php - 如何解决 Vue Router 防护重路由问题?
- google-apps-script - 嗨,我是 google 脚本的新手,如何解析 webhook?
- excel - 如何在 Excel VBA 中以相对方式引用命名单元格
- powershell - 使用 PowerShell 将应用程序部署到服务结构