Как отправить список объектов в составном запросе во флаттере? - PullRequest
1 голос
/ 21 марта 2020

Я хочу отправить список 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# имеет параметр List

Любая помощь приветствуется !!

...