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)");

至此修复完成

相关推荐
Front思10 分钟前
Vue3仿美团实现骑手路线规划
开发语言·前端·javascript
徐同保13 分钟前
Nano Banana AI 绘画创作前端代码(使用claude code编写)
前端
Ulyanov13 分钟前
PyVista与Tkinter桌面级3D可视化应用实战
开发语言·前端·python·3d·信息可视化·tkinter·gui开发
计算机程序设计小李同学13 分钟前
基于Web和Android的漫画阅读平台
java·前端·vue.js·spring boot·后端·uniapp
时光慢煮15 分钟前
Flutter 编译开发 OpenHarmony 全流程实战教程-基于开源仓库GitCode 搜索工具 v1.0.3 的跨平台实践
flutter·开源·gitcode
lkbhua莱克瓦2416 分钟前
HTML与CSS核心概念详解
前端·笔记·html·javaweb
沛沛老爹17 分钟前
从Web到AI:Agent Skills CI/CD流水线集成实战指南
java·前端·人工智能·ci/cd·架构·llama·rag
小白阿龙19 分钟前
鸿蒙+flutter 跨平台开发——Placeholder 控件的基础使用场景
flutter·华为·harmonyos·鸿蒙
时光慢煮20 分钟前
基于 Flutter × OpenHarmony 图书馆管理系统之构建书籍管理模块
flutter·华为·开源·openharmony
IT陈图图20 分钟前
智慧图书馆的数字名片:基于 Flutter × OpenHarmony 的读者卡片构建实践
flutter·鸿蒙·openharmony