Alamofire在tvOS上不识别Webp格式的问题及重开请求
Alamofire在tvOS上下载WebP文件时的内容类型匹配错误问题
问题现象
在Apple TV(tvOS 15.x)上使用Alamofire下载WebP文件时,触发如下错误:
Request failed due to an underlying Alamofire error: Response Content-Type "image/webp" does not match any acceptable types: image/gif,image/x-xbitmap,image/x-win-bitmap,application/octet-stream,image/jpg,image/ico,image/x-icon,image/x-bmp,image/x-ms-bmp,image/jpeg,image/heif,image/png,image/tiff,image/jp2,image/bmp,image/heic
相同代码在iOS环境下执行无异常。
使用环境
- Alamofire 5.6.2(通过SPM引入)
- AlamofireImage 4.2.0(通过SPM引入)
- tvOS 15.x
原因分析
AlamofireImage的默认可接受内容类型列表存在平台差异:尽管Apple官方文档标注tvOS支持WebP格式,但AlamofireImage 4.2.0的tvOS版本默认未将image/webp纳入可接受内容类型集合,而iOS版本的默认集合包含该类型,导致跨平台表现不一致。
解决方案
方案1:手动添加WebP内容类型
发起请求前,修改ImageResponseSerializer的可接受内容类型集合,加入image/webp:
let serializer = ImageResponseSerializer() serializer.acceptableContentTypes.insert("image/webp") AF.request(targetURL).response(responseSerializer: serializer) { response in switch response.result { case .success(let image): // 处理下载完成的图片 print("图片下载成功:\(image)") case .failure(let error): // 处理错误逻辑 print("下载失败:\(error)") } }
方案2:升级AlamofireImage版本
检查AlamofireImage后续版本是否已修复tvOS平台的WebP内容类型支持问题,升级至与Alamofire 5.6.2兼容的最新版本。
内容的提问来源于stack exchange,提问作者C6Silver
相关产品推荐
相关产品推荐

