Ios SDWebimage Error Domain=NSURLErrorDomain Code=406 报错

对于ios加载图片,大家应该都用的Sdwebimage这个第三方库,简单又好用。但是我今天遇到了一个奇葩的问题。 有个图片url是‘http://12.12.182.92:726/myapp/app/obtainImage?id=8a83a3c1bf215‘,在浏览器上是可以显示。但是用sdwebimage显示不了。 后来我换了另一个图片url是可以显示的。最后,我直接下载这张图片,发现报错了:Error Domain=NSURLErrorDomain Code=406 “The operation couldn’t be completed. (NSURLErrorDomain error 406.)”
从log来看,报错原因是 SDWebImage : NSURLErrorDomain - Code = 406,找到解决方案是:通过重写 SDWebImage 中的 request headers ,来使图片下载成功。
通过查找 Wikipedia 中对 ‘HTTP status code 406‘的定义:406 Not Acceptable - The requested resource is only capable of generating content not acceptable according to the Accept headers sent in the request,可修改 SDWebImage 中的如下代码:

_HTTPHeaders = [NSMutableDictionary dictionaryWithObject:@"image/webp,image/*;q=0.8" 
                                                  forKey:@"Accept"];

不过贸然修改第三方库的源代码是不明智的,所以在异步加载图片之前添加如下代码来使图片显示成功:

        [SDWebImageDownloader.sharedDownloader setValue:@"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"
                                     forHTTPHeaderField:@"Accept"];
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值