SDWebImage Error Domain=NSURLErrorDomain错误

最近在使用SDWebImage的时候访问Resitify自建的api时候出现了未能加载出图片的问题。使用浏览器打开图片的网址一切正常。

一开始以为是SDWebImage的bug,于是更新SDWebImage到最新版本还是有问题,奇怪的是google了一下,遇到问题的有不少人,但是最后没找到适合自己的答案,于是自己动手,丰衣足食。


出问题的链接:

http://192.168.0.100:3000/uploads/images/1439795883238.jpg



首先排查是否是自己api服务的问题。

于是随便换了图片的链接,一切正常,图片能够正常显示出来!!!

于是基本确定是自己服务器的问题了。


接下来模拟SDWebImage的请求,看服务器返回什么东西。

这个办法有很多,可以通过一些抓包工具抓。我是直接开启服务器的调试,把请求的信息变量req.headers打印了出来。

SDWebImage的请求头信息如下:

{
    host: '192.168.0.100:3000',
     accept: 'image/*;q=0.8',
     'accept-language': 'en-us',
     connection: 'keep-alive',
     'accept-encoding': 'gzip, deflate',
     'user-agent': 'Server/1 CFNetwork/711.4.6 Darwin/14.3.0' 
}

初看并没有什么特别的地方,于是把头信息拷贝到postman中

205450_Zdyg_659301.jpg

可以看到返回来的错误信息

{
"code": "NotAcceptableError",
"message": "Server accepts: application/json,text/plain,application/octet-stream,application/javascript"
}

看到这个信息基本上可以确定问题的所在了。

原来restify默认情况下不支持图片类型的mime头(image/*)

于是经过查找restify的文档把mime类型image/*加上即可。

之前使用浏览器能打开是因为浏览器默认的请求里面有restify接受的mime类型。

以下是chorme浏览器的请求信息。

205925_ijcp_659301.png

转载于:https://my.oschina.net/Caige/blog/495840

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值