SDWebImage(无侵入)下载授权图片

https://celnet--c.ap1.content.force.com/profilephoto/005/T
如上图片链接,需要授权才可以下载(显示)该图片。如果直接使用SDWebImage  会报一系列错误,图片无法下载显示。

如果想使用SDWebImage来下载授权的图片,就必须授予SDWebImage下载这张图片的权利。

首先,我们要对SDWebImage原理有一定的理解。传送门
了解了SDWebImage实现的整个流程,那么SDWebImage是怎么下载一张图片呢?

一路点击源码,可以发现如图所示

SDWebImageDownloader

注意画圈的部分,就是授权的重点。(估计很多同学都恍然大悟了)
看到这里,很多同学都迫不及待的在SDWebImageDownloader类里面对request进行授权信息的配置,虽然也能完成下载显示授权图片的功能,但是这就违背了源码使用的初衷(不到万不得已的时候不修改)以及对SDWebImage大神们的否定,大神们肯定想到过诸如此类的场景。

(咳咳~ 注意标题)

再仔细看SDWebImageDownloader是一个单例。

切到 SDWebImageDownloader.h 文件


SDWebImageDownloader.h

找到这个方法(问题已经解决90%)
当然SDWebImageDownloader不止可以设置请求信息,还可以设置各种属性,有兴趣的同学可以把SDWebImageDownloader类看一遍。
最后一步就是配置SDWebImageDownloader下载请求信息了,配置如下:



NSString*bearer = [NSStringstringWithFormat:@"Bearer %@", [UserInfoshare].accessToken];

[[SDWebImageDownloadersharedDownloader]setValue:bearerforHTTPHeaderField:@"Authorization"];//不需要配置的时候可以设置value为空


至此,就解决了SDWebImage(无侵入)下载授权图片问题。
YYKit中的图片下载缓存方案跟SDWebImage类似 上述也可以解决YYKit下载授权图片问题。

留点记录,共勉之。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,530评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,294评论 4 61
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,256评论 19 139
  • 前不久做了一个生成快照的需求,其中用到 SDWebImage 来下载图片,在使用该框架的过程中也遇到了一些问题,索...
    ShannonChenCHN阅读 14,188评论 12 241
  • 就在不久前,92年的人被正式定义为中年这件事,引起了众多92年前出生的人的悲叹感慨。 是啊,感觉就像咪蒙说的一样,...
    雨天小将阅读 729评论 0 0