前言:此解决方案不一定对所有类似的问题有效。
先说下我遇到的问题,我们的数据大多都是抓取过来的,很多图片在客户端不显示(用的是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,问题解决。
网友评论