diff --git a/lib/http/init.dart b/lib/http/init.dart index ec79fb78..45dada55 100644 --- a/lib/http/init.dart +++ b/lib/http/init.dart @@ -258,7 +258,7 @@ class Request { CancelToken? cancelToken, }) async { try { - final response = await dio.download( + return await dio.download( urlPath, savePath, cancelToken: cancelToken, @@ -268,7 +268,6 @@ class Request { // }, ); // if (kDebugMode) debugPrint('downloadFile success: ${response.data}'); - return response; } on DioException catch (e) { // if (kDebugMode) debugPrint('downloadFile error: $e'); return Response( diff --git a/lib/pages/video/controller.dart b/lib/pages/video/controller.dart index 652e4137..2b31af15 100644 --- a/lib/pages/video/controller.dart +++ b/lib/pages/video/controller.dart @@ -47,6 +47,7 @@ import 'package:PiliPlus/utils/storage_pref.dart'; import 'package:PiliPlus/utils/utils.dart'; import 'package:PiliPlus/utils/video_utils.dart'; import 'package:connectivity_plus/connectivity_plus.dart'; +import 'package:dio/dio.dart' show Options; import 'package:easy_debounce/easy_throttle.dart'; import 'package:extended_nested_scroll_view/extended_nested_scroll_view.dart'; import 'package:flutter/foundation.dart' show kDebugMode; @@ -700,6 +701,7 @@ class VideoDetailController extends GetxController 'videoID': bvid, 'cid': cid.value, }, + options: Options(validateStatus: (status) => true), ); if (result.statusCode == 200) { if (result.data case List list) { diff --git a/lib/utils/image_util.dart b/lib/utils/image_util.dart index ca551190..61d8f671 100644 --- a/lib/utils/image_util.dart +++ b/lib/utils/image_util.dart @@ -23,24 +23,20 @@ class ImageUtil { static Future onShareImg(String url) async { try { SmartDialog.showLoading(); - var response = await Request().get( - url, - options: Options(responseType: ResponseType.bytes), - ); final temp = await getTemporaryDirectory(); + var path = '${temp.path}/${Utils.getFileName(url)}'; + var res = await Request().downloadFile(url.http2https, path); SmartDialog.dismiss(); - var name = Utils.getFileName(url); - var path = '${temp.path}/$name'; - File(path).writeAsBytesSync(response.data); - - SharePlus.instance.share( - ShareParams( - files: [XFile(path)], - sharePositionOrigin: await Utils.isIpad() - ? Rect.fromLTWH(0, 0, Get.width, Get.height / 2) - : null, - ), - ); + if (res.statusCode == 200) { + SharePlus.instance.share( + ShareParams( + files: [XFile(path)], + sharePositionOrigin: await Utils.isIpad() + ? Rect.fromLTWH(0, 0, Get.width, Get.height / 2) + : null, + ), + ); + } } catch (e) { SmartDialog.showToast(e.toString()); } @@ -119,10 +115,12 @@ class ImageUtil { String videoName = "video_${Utils.getFileName(liveUrl)}"; String videoPath = '$tmpPath/$videoName'; - await Request.dio.download(liveUrl, videoPath); + final res = await Request().downloadFile(liveUrl.http2https, videoPath); + if (res.statusCode != 200) throw '${res.statusCode}'; if (Platform.isIOS) { - await Request.dio.download(url, imagePath); + final res1 = await Request().downloadFile(url.http2https, imagePath); + if (res1.statusCode != 200) throw '${res1.statusCode}'; SmartDialog.showLoading(msg: '正在保存'); bool success = await LivePhotoMaker.create( coverImage: imagePath,