Baseflow / Baseflow/flutter_cache_manager

url 404 and retry always 404

未关闭
#473 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Dart
星标
809
派生
510
平均合并
6 分钟
30 天内合并 PR
1

描述

## 💬 Questions and Help

Here I'm using cached_network_image to loading network image. It may not exists with the giving image url, when I get 404 from errorListener, I async image to the url to make sure url is available. After that I refresh the CachedNetworkImage, still get error 404 from errorWidget.

```
Widget imgWidget() {
return CachedNetworkImage(
imageUrl: _imageUrl,
imageBuilder: (context, imageProvider) {
return Container(
decoration: BoxDecoration(
image: DecorationImage(
image: imageProvider,
fit: widget.fit,
),
),
);
},
placeholder: (context, url) {
return widget.placeholder;
},
errorWidget: (context, url, error) {
return widget.placeholder;
},
errorListener: (e) {
if (e is HttpException) {
logger.d('----- errorListener ${e.uri.toString()} - ${e.message}');
if (e.message.contains('404')) {
_syncImage();
}
} else {
logger.d('Image Exception is: ${e.runtimeType}');
}
},
);
}

_syncImage() async {
HttpManager().syncImageToCdnUrl(_imageUrl).then((_) {
setState(() { });
}).catchError((onError) {
logger.d(onError);
});
}

```

贡献指南

打开贡献指南

调研方向

从 CachedNetworkImage 入口开始,重点关注其 errorListener、errorWidget,以及 _syncImage 调用 setState 后的刷新行为。重现初始 URL 返回 404、URL 被同步以及 widget 被刷新的过程;当 URL 可用时,刷新的图像不再报告缓存的 404,即表示完成。

由索引模型根据 Issue 内容生成。

评估

技术栈
dart, flutter
领域
mobile-dev
Issue 类型
缺陷
难度
3/5
预计耗时
1-2 天
活跃度
停滞
描述清晰度
需要澄清
新手友好度
30/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。