Flutter NetworkImage 处理 403 错误
Posted
技术标签:
【中文标题】Flutter NetworkImage 处理 403 错误【英文标题】:Flutter NetworkImage handle 403 error 【发布时间】:2019-01-13 02:37:31 【问题描述】:在我的Flutter
移动应用程序中,通过NetworkImage()
加载用户的个人资料图片时,我收到了403 状态码作为响应。
如果出现 403 状态代码或图像 URL 损坏等情况,如何通过显示我的 assets 文件夹中的图像来处理此问题。
目前我已经通过向图像 URL 发送 HTTP GET
请求并检查 状态代码是否为 200 来处理它。如果是 200,我使用NetworkImage()
,否则我使用AssetImage()
加载图像并使用FutureBuilder()
构建小部件。
虽然这很有效,但我觉得处理这么小的场景很麻烦,而且可以以我不知道的更好的方式完成。
处理这种情况的最佳方法是什么?
【问题讨论】:
您可以使用堆栈小部件并同时加载 AssetImage 和 NetworkImage。如果加载成功,NetworkImage 将显示在 AssetImage 的顶部。但这样一来,资产小部件无论如何都会加载。 这不适用于我的情况,它仍然会抛出异常,只是您不会注意到差异。我正在寻找类似加载错误的后备。如果我在只需要 1 张图片时加载 2 张图片,也会影响性能吗? 如果networkImage失败,它会抛出一个异常,这不是一场彻底的灾难!这个解决方案很简单,成本最低。但我同意你的看法。这感觉不对。看看这个:github.com/flutter/flutter/issues/6229 【参考方案1】:这个场景你做的很简单,我没看出有什么问题:
if (response.statusCode == 200)
return NetworkImage();
else
return AssetImage();
【讨论】:
我不想在加载图像之前发送 GET 请求。这是我已经做过的。以上是关于Flutter NetworkImage 处理 403 错误的主要内容,如果未能解决你的问题,请参考以下文章