flutter - 具有重复键形式的 Dart Http POST
问题描述
我正在使用 http/http.dart 尝试像这样发布 multipart/form-data :
Version: "1.0"
Token: "xxxxxxxxxx"
Ids: "1"
Ids: "2"
Ids: "3"
问题是 Dart 接受不允许重复键的映射体。我能想到的最好方法是将“Ids”键包装为数组。不幸的是,我无法与 Web 服务器开发团队协商,因此,我唯一的选择是使用给定的 API。
有人对这个问题有建议吗?
解决方案
最好的解决方案是将列表作为参数映射中的值传递。这是一个例子,
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());
推荐阅读
- python - 我该如何修复“TypeError:预期的字符串或类似字节的对象”
- symfony - 在 Symfony 中使用 DQL 获得“选择”
- kubernetes - 如何使用 helm chart 向 prometheus-operator 添加 smtp 设置?
- javascript - 推送后具有数组值的Javascript动态属性为空
- c - 安装和编译 MEX 接口的问题
- angular - Angular Material 单选按钮组需要验证不起作用
- owl-carousel - Owl Carousel - 在最后一张幻灯片上禁用下一个按钮
- haskell - 分组参数
- java - 单声道 switchIfEmpty() 总是被调用
- python - “如何在 python 3 中使用 while 循环从同一个文件中读取字符串和数字?”