gpt4 book ai didi

http - Flutter Dio 发布一个带有数组的对象

转载 作者:行者123 更新时间:2023-12-03 03:07:54 30 4
gpt4 key购买 nike

我正在尝试使用对象向 api 发布请求“

var params =  {
"item": "itemx",
"options": [1,2,3],
};
print(params);
try {
Response response = await _dio.post(getAddToCartURL,
queryParameters: params,
options: Options(headers: {
HttpHeaders.contentTypeHeader: "application/json",
}));

} catch (error, stackTrace) {
print("Exception occurred: $error stackTrace: $stackTrace");
return false;
}

Dio 将对象发送为:
POST /api/add-to-cart/?item=itemx&options%5B%5D=1&options%5B%5D=2&options%5B%5D=3 

其中 api 将其识别为错误的请求。

我在这里做什么错了?我什至尝试将列表设为 ["1","2","3"],它是一样的。

最佳答案

这一切都取决于 API 的期望。我建议尝试将其编码为 JSON。

var params =  {
"item": "itemx",
"options": jsonEncode([1,2,3]),
};

但是在查询参数中发送复杂数据并不总是那么容易。由于您无论如何都在使用 POST,因此可能将 JSON 对象作为正文发送,而不是使用查询参数。
var params =  {
"item": "itemx",
"options": [1,2,3],
};
...
Response response = await _dio.post(getAddToCartURL,
options: Options(headers: {
HttpHeaders.contentTypeHeader: "application/json",
}),
data: jsonEncode(params),
);

关于http - Flutter Dio 发布一个带有数组的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61542834/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com