SDWebImage NSURLErrorDomain - Code = 406

首先从维基百科上对于返回码是406的定义:

406 Not Acceptable - The requested resource is only capable of generating content not acceptable according to the Accept headers sent in the request.
就是说我们的请求不被服务器所接受,原因是我们的请求头出现了问题。

那么我们碰到的问题是

Error Domain=NSURLErrorDomain Code=406 “The operation couldn’t be completed. (NSURLErrorDomain error 406.)”
返回码是406,因此可以发现是我们的请求头的问题

然后我们进到SDWebImageDownloader文件中,我们发现了设置请求头的代码:

#ifdef SD_WEBP
    _HTTPHeaders = [@{@"Accept": @"image/webp,image/*;q=0.8"} mutableCopy];
#else
    _HTTPHeaders = [@{@"Accept": @"image/*;q=0.8"} mutableCopy];
#endif

这里的请求头有可能不满足我们的服务器的条件,因此,我们在这里修改请求头,改为

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

发现图片请求成功了,但是这不是长久之计,又因为SDWebImageDownloader是单例,所以我们可以从外部设置他的请求头,代码如下:

[SDWebImageDownloader.sharedDownloader setValue:@"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" forHTTPHeaderField:@"Accept"];

成功解决问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值