upload method

void upload({
  1. ProgressCallback? onSendProgress,
  2. Success? success,
  3. Failure? failure,
  4. Completed? completed,
})

上传文件

Implementation

void upload({
  adapter.ProgressCallback? onSendProgress,
  Success? success,
  Failure? failure,
  Completed? completed,
}) async {
  if (!(await _checkNetWork())) {
    return;
  }

  final url = _buildFinalUrl();
  final payload = _resolveRequestPayload();

  try {
    final adapterRequest = _buildAdapterRequest(
      url: url,
      queryParams: payload.queryParams,
      data: payload.body,
      contentType: payload.contentType,
    );

    // 使用适配器上传文件
    final adapter = _requireAdapter();
    final response = await adapter.upload(
      adapterRequest,
      onProgress: onSendProgress,
    );

    onResponse?.call(response);
    if (response.isSuccess) {
      success?.call(response.data, SourcesType.net);
    } else {
      failure?.call(response.data);
    }
  } on AdapterException catch (e) {
    failure?.call(e);
  } catch (e) {
    failure?.call(e);
  } finally {
    completed?.call();
  }
}