浏览器里可以显示的图片,用SDWebImage加载不出来问题解决

前言:此解决方案不一定对所有类似的问题有效。

先说下我遇到的问题,我们的数据大多都是抓取过来的,很多图片在客户端不显示(用的是SD),但是放在任何一个浏览器上都可以显示出来,SD在加载时返回的响应是

Domain=NSURLErrorDomain Code=-999 "已取消"

这时我在SDWebImageDownloadToken.m文件里的

- (nullable SDWebImageDownloadToken *)downloadImageWithURL:(nullable NSURL *)url
                                                   options:(SDWebImageDownloaderOptions)options
                                                  progress:(nullable SDWebImageDownloaderProgressBlock)progressBlock
                                                 completed:(nullable SDWebImageDownloaderCompletedBlock)completedBlock
}

添加了这行代码

[request setValue:@"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1"forHTTPHeaderField:@"User-Agent"];

再运行,图片已显示

注:此UA是我在浏览器中加载出图片后拿的浏览器的UA,你也可以换成一个安卓的 或者其他的,能把图片显示出来就可以。
另:我还遇到过另一个图片不显示问题,加载html在WKWebView上,域名为http的,把图片地址放在浏览器仍然正常显示,但在webView里显示“此图片来自QQ空间,未经许可不可转载”,此类问题应该是图片地址做了防盗处理还是另外的特殊处理,导致显示异常。

解决方法为:将域名换成https,问题解决。

你可能感兴趣的:(浏览器里可以显示的图片,用SDWebImage加载不出来问题解决)