You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 09:33:29