我正试图通过Dio post请求上传一个图像和一些额外的数据(JSON映射(。我的问题是如何为FormData.fromMap
的每个字段设置内容类型
final data = FormData.fromMap({
"file": await MultipartFile.fromFile(
path,
filename:name,
),
"mapData": {"name": "user_name"}, //I wnat to set content-type for this value
});
如何为每个FormData条目添加内容类型。
要添加JSON数据,我们可以使用MultipartFile.fromString
来完成,其中我们可以指定数据的content-type
。
从'package:http_parser/http_parser.dart';
导入http_parser
包以使用MediaType
类。
final data = FormData.fromMap({
"file": await MultipartFile.fromFile(
path,
filename: name,
),
"mapData": await MultipartFile.fromString(
{"name": "user_name"},
contentType: MediaType.parse('application/json'),
),
},
ListFormat.multiCompatible,
);
在发送数据之前,您也需要对数据进行json编码,这里是:
final data = FormData.fromMap({
"file": await MultipartFile.fromFile(
path,
filename: name,
),
"mapData": MultipartFile.fromString(
jsonEncode({"name": "user_name"}),
contentType: MediaType.parse('application/json'),
),
},
);