upload method
void
upload({
- ProgressCallback? onSendProgress,
- Success? success,
- Failure? failure,
- Completed? completed,
上传文件
Implementation
void upload({
adapter.ProgressCallback? onSendProgress,
Success? success,
Failure? failure,
Completed? completed,
}) async {
if (!(await _checkNetWork())) {
return;
}
final url = _buildFinalUrl();
try {
// 准备请求体
dynamic requestBody = _rawBody;
if (_rawBody == null && _bodyParams.isNotEmpty) {
if (_bodyType == RequestBodyType.formData) {
requestBody = _bodyParams;
} else if (_bodyType == RequestBodyType.json) {
requestBody = _bodyParams;
}
}
// 构建 AdapterRequest
final adapterRequest = _buildAdapterRequest(
url: url,
queryParams: _queryParams,
data: requestBody,
);
// 使用适配器上传文件
final adapter = _rxNet.getAdapter();
if (adapter == null) {
throw NetworkException("NetworkAdapter is not initialized", null);
}
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);
}
completed?.call();
}