SDWebImage Error Domain=NSURLErrorDomain错误

原创
2015/08/22 21:00
阅读数 995

最近在使用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中

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

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

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

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

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

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

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

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部