https://celnet--c.ap1.content.force.com/profilephoto/005/T
如上圖片鏈接,需要授權(quán)才可以下載(顯示)該圖片。如果直接使用SDWebImage ?會報一系列錯誤,圖片無法下載顯示垒手。
如果想使用SDWebImage來下載授權(quán)的圖片,就必須授予SDWebImage下載這張圖片的權(quán)利。
首先梆暮,我們要對SDWebImage原理有一定的理解。傳送門
了解了SDWebImage實現(xiàn)的整個流程绍昂,那么SDWebImage是怎么下載一張圖片呢惕蹄?
一路點擊源碼,可以發(fā)現(xiàn)如圖所示
注意畫圈的部分,就是授權(quán)的重點卖陵。(估計很多同學都恍然大悟了)
看到這里遭顶,很多同學都迫不及待的在SDWebImageDownloader類里面對request進行授權(quán)信息的配置,雖然也能完成下載顯示授權(quán)圖片的功能泪蔫,但是這就違背了源碼使用的初衷(不到萬不得已的時候不修改)以及對SDWebImage大神們的否定棒旗,大神們肯定想到過諸如此類的場景。
(咳咳~ 注意標題)
再仔細看SDWebImageDownloader是一個單例撩荣。
切到 SDWebImageDownloader.h 文件
找到這個方法(問題已經(jīng)解決90%)
當然SDWebImageDownloader不止可以設置請求信息铣揉,還可以設置各種屬性,有興趣的同學可以把SDWebImageDownloader類看一遍餐曹。
最后一步就是配置SDWebImageDownloader下載請求信息了逛拱,配置如下:
NSString*bearer = [NSStringstringWithFormat:@"Bearer %@", [UserInfoshare].accessToken];
[[SDWebImageDownloadersharedDownloader]setValue:bearerforHTTPHeaderField:@"Authorization"];//不需要配置的時候可以設置value為空
至此,就解決了SDWebImage(無侵入)下載授權(quán)圖片問題。
YYKit中的圖片下載緩存方案跟SDWebImage類似 上述也可以解決YYKit下載授權(quán)圖片問題台猴。
留點記錄朽合,共勉之。