我正在使用表单数据创建包含图像的单一产品。我想要以单一形式数据创建产品列表的解决方案

问题描述 投票:0回答:0
  Future<int> createProduct(InventoryModel inventoryModel) async {

    final formData = FormData.fromMap(await inventoryModel.toJson(true));

    final Response response = await _dio.post(
      '${AppUrls.baseUrl}${InventoryUrls.createProduct}',
      data: formData,
    );

    if (response.statusCode != 200) {
      return Future.error(GeneralError());
    }

    final Map<String, dynamic> decodedJson = jsonDecode(response.data);
    if (!decodedJson['status']) {
      return Future.error(GeneralError(message: decodedJson['message']));
    }

    return decodedJson['product_id'];
  }

这是创建单一产品的代码,当我想同时创建产品列表时,工作正常问题出现了。 这是我目前解决这个不起作用的问题的策略。

  @override
  Future<bool> createInventoryList(List<InventoryModel> inventoryModels) async {
        final formData = FormData();
        formData.fields.add(MapEntry(
        'product_list',
        jsonEncode([for (final inventoryModel in inventoryModels) await      inventoryModel.toJsonSync(true)]),
       ));
   
    try {
      final response = await _dio.post(
        '${AppUrls.baseUrl}${SyncUrls.syncCreateInventory}',
        data: formData,
      );
      print(response.data.toString());
      if (response.statusCode != 200) {
        return Future.error(GeneralError());
      }

      final Map<String, dynamic> decodedJson = jsonDecode(response.data);
      print(decodedJson);
      if (!decodedJson['status']) {
        return  Future.error(GeneralError(message: "Some Error Occurred"));
      }
      return true;
    } catch (error) {
      return Future.error(error);
    }
  }

请推荐任何解决方案....

这是我目前解决这个不起作用的问题的策略。**

  @override
  Future<bool> createInventoryList(List<InventoryModel> inventoryModels) async {
        final formData = FormData();
        formData.fields.add(MapEntry(
        'product_list',
        jsonEncode([for (final inventoryModel in inventoryModels) await      inventoryModel.toJsonSync(true)]),
       ));
   
    try {
      final response = await _dio.post(
        '${AppUrls.baseUrl}${SyncUrls.syncCreateInventory}',
        data: formData,
      );
      print(response.data.toString());
      if (response.statusCode != 200) {
        return Future.error(GeneralError());
      }

      final Map<String, dynamic> decodedJson = jsonDecode(response.data);
      print(decodedJson);
      if (!decodedJson['status']) {
        return  Future.error(GeneralError(message: "Some Error Occurred"));
      }
      return true;
    } catch (error) {
      return Future.error(error);
    }
  }
flutter dart multipartform-data form-data dio
© www.soinside.com 2019 - 2024. All rights reserved.