req method

Future<Response> req(
  1. String url,
  2. String method,
  3. Map fields,
  4. Map<String, dynamic> headers, {
  5. dynamic multipart = false,
  6. dynamic fileName = '',
})

リクエスト用オブジェクトを返す url URL method リクエストメソッド fields データ情報 headers ヘッダー情報 multipart マルチパートリクエストかどうか(ファイルストア用)。省略時はfalse fileName ファイル名(ファイルストア用)。省略時は空文字。

Implementation

Future<Response> req(
    String url, String method, Map fields, Map<String, dynamic> headers,
    {multipart = false, fileName = ''}) async {
  Response? response;
  var dio = new Dio();
  switch (method) {
    case 'GET':
      {
        if (multipart) {
          response = await dio.get<List<int>>(url,
              options: Options(
                  headers: headers, responseType: ResponseType.bytes));
        } else {
          response = await dio.get(url, options: Options(headers: headers));
        }
      }
      break;

    case 'POST':
      {
        var data;
        if (multipart) {
          FormData formData = FormData.fromMap({
            'acl': fields['acl'].toJson(),
            'file': MultipartFile.fromBytes(fields['file'],
                filename: fileName, contentType: fields['mimeType'])
          });
          data = formData;
        } else {
          data = jsonEncode(fields);
        }
        response = await dio.post(url,
            data: data, options: Options(headers: headers));
      }
      break;

    case 'PUT':
      {
        response = await dio.put(url,
            data: jsonEncode(fields), options: Options(headers: headers));
      }
      break;

    case 'DELETE':
      {
        response = await dio.delete(url, options: Options(headers: headers));
      }
      break;
  }
  return response!;
}