首页 > 解决方案 > 具有重复键形式的 Dart Http POST

问题描述

我正在使用 http/http.dart 尝试像这样发布 multipart/form-data :

Version: "1.0"
Token: "xxxxxxxxxx"
Ids: "1"
Ids: "2"
Ids: "3"

问题是 Dart 接受不允许重复键的映射体。我能想到的最好方法是将“Ids”键包装为数组。不幸的是,我无法与 Web 服务器开发团队协商,因此,我唯一的选择是使用给定的 API。

有人对这个问题有建议吗?

标签: flutterhttpdart

解决方案


最好的解决方案是将列表作为参数映射中的值传递。这是一个例子,

var baseUrl = 'example.com';
var path = 'posts';
var params = {
  'ids[]': ['1', '2', '3'],
  'x': 'false',
};

// http://example.com/posts?ids[]=1&ids[]=2&ids[]=3&x=false
var response = await http.get(Uri.http(baseUrl, path, params));

注意:列表中的元素必须是字符串,您可以使用以下方法将它们转换为字符串,

list = list.map((e) => e.toString());

推荐阅读