multipartRequest method

Future multipartRequest(
  1. MultipartUrlRequest request
)

Sends an HTTP Multipart request with the UrlRequest object waiting for a 200 status code.

Implementation

Future<dynamic> multipartRequest(MultipartUrlRequest request) async {
  final multipartRequest =
      http.MultipartRequest(request.method.name, request.url);
  request.fieldsMultipart?.forEach((key, value) {
    multipartRequest.fields[key] = value;
  });

  request.filesMultipart?.forEach((key, value) async => multipartRequest.files
      .add(await http.MultipartFile.fromPath(key, value)));
  final streamedResponse = await multipartRequest.send();
  var response = await http.Response.fromStream(streamedResponse);
  if (response.statusCode == 200) {
    try {
      return jsonDecode(response.body);
    } catch (error) {
      return Future.error(error);
    }
  } else {
    return Future.error(
        "The server return a ${response.statusCode} status code");
  }
}