postFormData method

Future<Map<String, dynamic>> postFormData(
  1. String path, {
  2. required FormData data,
  3. CancelToken? cancelToken,
  4. void onSendProgress(
    1. int sent,
    2. int total
    )?,
  5. Duration? sendTimeout,
  6. Duration? receiveTimeout,
})

POST multipart/form-data(明文,跳过 AES),用于文件上传。

Implementation

Future<Map<String, dynamic>> postFormData(
  String path, {
  required FormData data,
  CancelToken? cancelToken,
  void Function(int sent, int total)? onSendProgress,
  Duration? sendTimeout,
  Duration? receiveTimeout,
}) async {
  final dio = _ensureDio();
  try {
    final resp = await dio.post<dynamic>(
      path,
      data: data,
      cancelToken: cancelToken,
      onSendProgress: onSendProgress,
      options: Options(
        // 勿手动设 Content-Type,否则缺少 boundary;拦截器会去掉默认 json 头
        sendTimeout: sendTimeout ?? const Duration(minutes: 5),
        receiveTimeout: receiveTimeout ?? const Duration(minutes: 5),
      ),
    );
    return _unwrap(resp);
  } on DioException catch (e) {
    throw _mapDioError(e);
  }
}