Flutter CachedNetworkImage 使用网易云链接403错误解决方案

Flutter CachedNetworkImage 使用网易云链接403错误解决方案

报错信息

依旧是熟悉的错误

dart 复制代码
======== Exception caught by image resource service ================================================
The following HttpExceptionWithStatus was thrown resolving an image codec:
HttpException: Invalid statusCode: 403, uri = https://p1.music.126.net/q7UebOEf7TUkQ_NhBZSNlg==/109951167926630292.jpg?param=512y512

When the exception was thrown, this was the stack: 
Image provider: CachedNetworkImageProvider("https://p1.music.126.net/q7UebOEf7TUkQ_NhBZSNlg==/109951167926630292.jpg?param=512y512", scale: 1.0) 
 Image key: CachedNetworkImageProvider("https://p1.music.126.net/q7UebOEf7TUkQ_NhBZSNlg==/109951167926630292.jpg?param=512y512", scale: 1.0): CachedNetworkImageProvider("https://p1.music.126.net/q7UebOEf7TUkQ_NhBZSNlg==/109951167926630292.jpg?param=512y512", scale: 1.0)

解决办法

点击查看CachedNetworkImage的源码,再查看CachedNetworkImageProvider

找到Stream<ui.Codec> _loadBufferAsync()这一个方法

点击DefaultCacheManager跳转到相关源码

点击CacheManager跳转,然后找到Future<FileInfo> downloadFile()这么一个方法

点击downloadFile方法跳转

点击_downloadOrAddToQueue(url, key, authHeaders)方法跳转

点击_updateFile(url, key, authHeaders: authHeaders))方法

点击_download(cacheObject, authHeaders)方法

点击fileFetcher这个变量

点击HttpFileService()这个方法

点击Client()这个方法,然后跳转到这个页面

点击createClient(),然后可以看到这里有两个实现类browser_client.dart io_client.dart的文件路径

然后我们返回上一个页面,也就是刚刚createClient()的页面,往上看头文件

browser_client.dart文件修改如下

找到Future<StreamedResponse> send(BaseRequest request)这个方法,添加如下代码

dart 复制代码
request.headers.remove("user-agent", "Dart/3.1 (dart:io)");

io_client.dart文件修改如下

找到Future<IOStreamedResponse> send(BaseRequest request)这个方法,添加如下代码

dart 复制代码
ioRequest.headers.remove("user-agent", "Dart/3.1 (dart:io)");

至此修复完成

相关推荐
猫猫不是喵喵.1 小时前
layui表单项次大数据量导入并提交
前端·javascript·layui
张小潇1 小时前
AOSP15 WMS/AMS系统开发 - 窗口层级源码分析
android·前端
whuhewei1 小时前
HTTP1/2/3演变
前端·计算机网络
腹黑天蝎座1 小时前
从零实现一个前端监控系统:性能、错误与用户行为全方位监控
前端·监控
Hooray2 小时前
为了在 Vue 项目里用上想要的 React 组件,我写了这个 skill
前端·ai编程
咸鱼翻身了么2 小时前
模仿ai数据流 开箱即用
前端
风花雪月_2 小时前
🔥IntersectionObserver:前端性能优化的“隐形监工”
前端
Bigger2 小时前
告别 AI 塑料感:我是如何用 frontend-design skill 重塑项目官网的
前端·ai编程·trae
发际线向北2 小时前
0x02 Android DI 框架解析之Hilt
前端
zhensherlock2 小时前
Protocol Launcher 系列:Overcast 一键订阅播客
前端·javascript·typescript·node.js·自动化·github·js