post method

Future<Map<String, dynamic>> post(
  1. String cmd,
  2. dynamic c,
  3. MultipartFile? f
)

Implementation

Future<Map<String, dynamic>> post(
    String cmd, dynamic c, MultipartFile? f) async {
  if (!(c is String) && !(c is Map)) throw 'Wrong type of arguments';
  Map<String, dynamic> q =
      (c is String) ? {'arg': c} : c as Map<String, dynamic>;
  Uri uri = Uri.parse(apiUrl + cmd);
  var request = MultipartRequest(
    'POST',
    uri.replace(
      queryParameters: q,
    ),
  );

  if (f != null) request.files.add(f);

  final res = await request.send();
  final r = await res.stream.bytesToString();
  Map<String, dynamic> item = jsonDecode(r);

  return item;
}