【发布时间】:2021-04-15 14:46:12
【问题描述】:
我的使用包http
我的应用程序中有这种方法可以发送带有文件的发布请求。就我而言,我发送文件以及具有动态值的字段。我尝试发送 List<String> 但服务器(后端)返回错误消息:
The seedlings field must be an array.
示例seedlings 列表值:
List<String> seedlings = ['Apple', 'Banana'];
代码:
Future post(String path, data) async {
await _getToken();
var url = '${ApiConstants.BASE_URL}$path';
var uri = Uri.parse(url);
var request = MultipartRequest('POST', uri);
data.forEach((key, item) async {
if (item == null) return null;
if (item is File) {
request.files.add(await MultipartFile.fromPath(
'file',
item.path,
));
} else {
request.fields[key] = item is num
? item.toString()
: item is List
? item.toString()
: item;
}
});
request.headers['Content-type'] = 'application/json';
request.headers['Accept'] = 'application/json';
var response = await request.send();
}
在我的情况下,所有字段都发送到服务器,除了具有 list 值的字段,例如 array
【问题讨论】:
-
您必须使用 for 循环并为列表分配索引
标签: arrays flutter http dart multipartform-data