download method

void download({
  1. String urlPath = '',
  2. String savePath = '',
  3. bool deleteOnError = true,
  4. String lengthHeader = Headers.contentLengthHeader,
  5. ProgressCallback? onReceiveProgress,
  6. dynamic data,
  7. Map<String, dynamic>? queryParameters,
  8. CancelToken? cancelToken,
  9. Options? options,
  10. Function? onStart,
  11. Function? onError,
  12. Function? onFinish,
  13. bool publicMethod = true,
})

-----------------------------------------下载文件方法封装-------------------------------------------------------------

Implementation

void download({
  String urlPath = '',
  String savePath = '',
  bool deleteOnError = true,
  String lengthHeader = Headers.contentLengthHeader,
  ProgressCallback? onReceiveProgress,
  data,
  Map<String, dynamic>? queryParameters,
  CancelToken? cancelToken,
  Options? options,
  Function? onStart,
  Function? onError,
  Function? onFinish,
  bool publicMethod = true
}) async{

  try{
    await _dio.download(
      urlPath,
      savePath,
      deleteOnError: deleteOnError,
      lengthHeader: lengthHeader,
      data: data,
      options: options,
      queryParameters: queryParameters,
      cancelToken: cancelToken,
      onReceiveProgress: (int sent, int total){
        onReceiveProgress?.call(sent, total);
      },
    );
  }on DioError catch(e){
    throw HttpError.dioError(e);
  }catch(e){
    if (e is HttpError) {
      if(onError != null){
        onError.call(e);
      }else if (publicMethod) {
        this._onError?.call(e);
      }

      if (onFinish != null) {
        onFinish.call();
      } else if(publicMethod){
        this._onFinish?.call();
      }
    }
  }
}