如何使用Dio为每个FormData条目设置不同的内容类型



我正试图通过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'),
),
},
);

最新更新