flutter 404缓存网络图像中的错误处理

gab6jxml  于 2023-02-09  发布在  Flutter
关注(0)|答案(2)|浏览(165)

所以我想创建一个图片卡。我提取数据并将其存储在我的新闻Map中,键为urlToImage作为我的图片URL。它的工作都很好,但当URL如
https://i-invdn-com.investing.com/news/https://i-invdn-com.investing.com/akapi-images/800x450/59149e84fbd2b771f1b6adea95d99dd6_w_800_h_450.jpg
找不到资源(404错误)。我的应用崩溃。
下面是错误的日志图像:
错误记录

我是新来的,有人能帮我学习如何处理这个案子吗?
这是我的CachedNetworkImage小部件。

CachedNetworkImage(
            imageUrl: news['urlToImage'] ?? NewsConstants.errorImage,
            progressIndicatorBuilder: (context, url, downloadProgress) =>
                CircularProgressIndicator(value: downloadProgress.progress),
            errorWidget: (context, url, error) => const Icon(Icons.error),
          )

我尝试过使用错误小部件,但也无济于事

ohtdti5x

ohtdti5x1#

我认为网址是坏的。它看起来像网址字符串是从2个单独的网址创建的。可能你需要删除它的开始部分(https://i-dndvn-com.investing.com/news/
https://i-dndvn-com.investing.com/news/https://i-invdn.invetinga.com/akapi..

yrefmtwq

yrefmtwq2#

我想复制这个网址,你正在使用“https://i-invdn-com.investing.com/news/https://i-invdn-com.investing.com/akapi-images/800x450/59149e84fbd2b771f1b6adea95d99dd6_w_800_h_450.jpg“,但它给了404回来,因为没有图片。
但是当我使用“https://i-invdn-com.investing.com/akapi-images/800x450/59149e84fbd2b771f1b6adea95d99dd6_w_800_h_450.jpg“时,一切都很好。
如果你总是从同一个URL提取鞍消息,那么就像news['urlToImage'].toString().substring(39)一样使用它。

CachedNetworkImage(
            imageUrl: news['urlToImage'].toString().substring(39) 
?? 
NewsConstants.errorImage,
            progressIndicatorBuilder: (context, url, 
downloadProgress) =>
                CircularProgressIndicator(value: 
downloadProgress.progress),
            errorWidget: (context, url, error) => const 
Icon(Icons.error),
          )

相关问题