gpt4 book ai didi

json - 如何在 flutter 中发送多部分请求中的对象列表?

转载 作者:行者123 更新时间:2023-12-04 12:59:22 25 4
gpt4 key购买 nike

我想在多部分请求中发送一个 ManageTagModel 列表以及其他模型和文件。

我不确定如何发送这个模型列表..

这是我发送没有列表的多部分请求的代码:

   var uri = Uri.parse(...);
final request = http.MultipartRequest('Post', uri);
request.fields['Id'] = '3';
request.fields['Name'] = siteModel.name;
request.fields['MapAddress'] = siteModel.mapAddress;
request.fields['Country'] = siteModel.country;
request.fields['City'] = siteModel.city;
request.fields['CategoryNb'] = siteModel.categoryNb;
request.fields['UserId'] = userId;
request.fields['Caption'] = caption;
for (File i in
multipleFiles) {

final mimeTypeData =
lookupMimeType(i.path, headerBytes: [0xFF, 0xD8]).split('/');
print("IMAGE: " + i.path);
// Attach the file in the request
final file = await http.MultipartFile.fromPath('files', i.path);
print(mimeTypeData[0] + " mimeTypeData[0]");
print(mimeTypeData[1] + " mimeTypeData[1]");

request.files.add(file);

这是我的模型:
  import 'dart:convert';

class ManageTagModel {
String posX;
String posY;
String postOrder;
String tagger;
String tagged;

ManageTagModel(
{this.posX, this.posY, this.postOrder, this.tagger, this.tagged});

//Flutter way of creating a constructor
factory ManageTagModel.fromJson(Map<String, dynamic> json) => ManageTagModel(
posX: json['PosX'],
posY: json['PosY'],
postOrder: json['PostOrder'],
tagged: json['Tagged'],
tagger: json['Tagger']);
Map<String, dynamic> toMap() {
return {
"PosX": posX,
"PosY": posY,
"PostOrder": postOrder,
"Tagger": tagger,
"Tagged": tagged
};
}
}

List<ManageTagModel> fromJson(String jsonData) {
// Decode json to extract a map
final data = json.decode(jsonData);
return List<ManageTagModel>.from(
data.map((item) => ManageTagModel.fromJson(item)));
}

String toJson(ManageTagModel data) {
// First we convert the object to a map
final jsonData = data.toMap();
// Then we encode the map as a JSON string
return json.encode(jsonData);
}

List encodeToJson(List<ManageTagModel> list) {
List jsonList = List();
list.map((item) => jsonList.add(item.toMap())).toList();
return jsonList;
}

我的后端 c# 方法有一个参数列表

任何帮助表示赞赏!

最佳答案

我很确定我来晚了,您可能已经找到了解决方案。我经历了多条线索,实际上并没有找到任何答案,但我发现自己是出于沮丧,并认为答案实际上仍然不存在于任何其他迷失的人类灵魂中。所以这是我对仍然卡在这里的人的解决方案,这是非常直观的。
您只需将列表的所有元素作为"file"而不是“字段”添加到请求中。但不是 fromPath()方法,你必须使用fromString() .

final request = http.MultipartRequest('Post', uri);
List<String> ManageTagModel = ['xx', 'yy', 'zz'];
for (String item in ManageTagModel) {
request.files.add(http.MultipartFile.fromString('manage_tag_model', item));
}
这对我有用,我希望它也对你有用。

关于json - 如何在 flutter 中发送多部分请求中的对象列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60791168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com