upload method

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

上传文件

Implementation

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

  String url = _path.toString();
  if (isRestfulUrl()) {
    url = NetUtils.restfulUrl(_path.toString(), _params);
  }
  try {
    _options?.method = _httpType.name;

    ///局部头优先与全局
    if (_headers.isNotEmpty) {
      _options?.headers = _headers;
    }
    if (_enableGlobalHeader) {
      _options?.headers ??= {};
      _options?.headers?.addAll(_rxNet._globalHeader);
    }
    if(_toFormData){
      _bodyData = FormData.fromMap(_params);
    }
    if(_toBodyData){
      _bodyData = _params;
    }

    Response response = await _rxNet.client!.request(
        url,
        data: _bodyData,
        queryParameters: (isRestfulUrl() || _toFormData || _toBodyData)? {} : _params,
        options: _options,
        cancelToken: _cancelToken);


    onResponse?.call(response);
    if (response.statusCode == 200) {
      success?.call(response.data, SourcesType.net);
      return;
    }
    failure?.call(response.data);
  } catch (e, s) {
    _catchError(success, failure, null, e, s);
  } finally {
    completed?.call();
  }
}