Baseflow / Baseflow/flutter_cache_manager
[Bug] Getting "HttpException: Invalid statusCode: 403" error
- 主要言語
- Dart
- スター
- 809
- フォーク
- 510
- 平均マージ
- 6分
- マージ済み PR(30日)
- 1
説明
## 🐛 Bug Report - Getting "HttpException: Invalid statusCode: 403" error
### Expected behavior
- I am trying to cache a video file from an open https url:
- - [https://cdn-animation.artstation.com/p/video_sources/000/629/776/shield-05-video.mp4]()
- **The error:** `HttpException: Invalid statusCode: 403`
- As far as I know, no headers are needed for that url.
- The file size is 13.4 MB.
- I will then use that cached file for playing videos from URLs.
- Actually, I am already doing that and it works as expected for this video url:
- - [https://flutter.github.io/assets-for-api-docs/assets/videos/butterfly.mp4]()
- **Important:** Even though I can't cache the video from the 1st url I provided, the Video Player plugin can successfully play it. So the url is working indeed.
### The code is long but here are the important part.
```dart
FileInfo? _fileInfo;
DefaultCacheManager _cacheManager = DefaultCacheManager();
_fileInfo = await _cacheManager.downloadFile(videoUrl, force: true);
// Also tried with --> force: false
// I use *await* but I know it is optional, in my case I need that.
if (_fileInfo == null) {
videoPlayerController = VideoPlayerController.network(videoUrl);
// When the file cannot be cached, the video is played from .network()
} else {
videoPlayerController = VideoPlayerController.file(_fileInfo.file);
// When the file is cached, the video is played from .file()
}
```
### I have also tried adding the key for allowing arbitrary loads on iOS --> NSAllowsArbitraryLoads
```
NSAppTransportSecurity
NSAllowsArbitraryLoads
```
### Version:
**flutter:** `2.10.1`
**flutter_cache_manager:** `^3.3.0`
### Platform:
- iOS (both device and simulator) - (tried on different iPhones) - (tried on release - debug modes)
コントリビューションガイド
調査の方向性
No repository file or test is named. Start with the downloadFile call in the report and trace how the cache manager handles the provided ArtStation URL's HTTP response, then compare it with the Flutter sample video URL on iOS. Done means reproducing the 403 behavior and establishing the appropriate cache-manager behavior for that response.
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- dart, flutter
- 領域
- mobile-dev, networking
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 30/100