form method

FliqRequest form({
  1. Map<String, String> fields = const {},
  2. List<FormFile> files = const [],
})

Appends form data and/or files to the request as part of a multipart form.

Example:

final response = await client.post('https://example.com/upload')
    .form(
      fields: {'key1': 'value1', 'key2': 'value2'},
      files: [FormFile('file1', 'example.txt', [/* file bytes */])],
    )
    .go();

Implementation

FliqRequest form({Map<String, String> fields = const {}, List<FormFile> files = const []}) {
  if (fields.isNotEmpty) {
    for (var entry in fields.entries) {
      request.add(utf8.encode('--boundary\r\n'
          'Content-Disposition: form-data; name="${entry.key}"\r\n\r\n'
          '${entry.value}\r\n'));
    }
  }

  if (files.isNotEmpty) {
    for (var file in files) {
      request.add(file.toRequest());
    }
  }

  request.add(utf8.encode('--boundary--\r\n'));

  return this;
}