Flutter中POST表单数据的数组

0 人关注

我在postman上准备了一个请求,更新我网站上的一个数据数组,并将dart代码复制到我的flutter应用中,以下是postman的代码

var headers = {
  'Authorization': '...',
  'Cookie': '...'
var request = http.MultipartRequest('POST', Uri.parse('my_endpoint'));
request.fields.addAll({
  'fields[0][field_id]': '20',
  'fields[0][group_id]': '1',
  'fields[0][value][]': 'Android Developer',
  'fields[0][value][]': 'Web Developer'
request.headers.addAll(headers);
http.StreamedResponse response = await request.send();
if (response.statusCode == 200) {
  print(await response.stream.bytesToString());
else {
  print(response.reasonPhrase);

问题是,Flutter删除了body map中的最后一对,因为它的键与前一个相同,所以只有更新操作的结果才是Web Developer的,但我认为我的请求只以这种方式工作,我怎样才能处理这个问题。

flutter
http
dart
The Forgotten Warrior
The Forgotten Warrior
发布于 2021-09-12
1 个回答
jeremynac
jeremynac
发布于 2021-09-12
已采纳
0 人赞同

你可以在formData中发送一个数组作为 {key[value][0]: value1, key[value][1]: value2, ...} 。 这里实现的方法是。

final values = ["Android Developer", "Web Developer"];
Map<String, String> valuesArray = {
  for (var i = 0; i < values.length; i++) 'fields[0][value][$i]': values[i]
request.fields.addAll({
  ...valuesArray,