在Web編程中我們都很熟知一個概念,當有了seesion登錄狀態時,你可以訪問一些資源但如果你沒有登錄的話很多資源是無法訪問的。
在android的WebApi中當然一樣擁有這個概念。比如,用戶的頭像資源;這東西可不是誰任意發一個http請求就可以拿的到的,因為什么相信你比我更清楚哦!
這時就要求我們的Glide能夠請求時攜帶cookie,說道這里相信大家已經知道我要干什么了,廢話少說直接上代碼:
if (AppCurrentUser.getInstance().getLoginOK()) return new GlideUrl(url, new LazyHeaders.Builder().addHeader("Cookie", AppCurrentUser.getInstance().getUserCookie()).build()); else return new GlideUrl(url);
這是工程當中的一個特別真實的例子:如果當前用戶為登錄狀態就需要在http請求頭中添加Cookie標識,這樣服務端校驗后就可以可以決定是不是要給你資源了!
在load方法中直接傳入返回的GlideUrl對象即可;代碼如下:
Glide.with(context).load(創建的GldieUrl對象實例)//load是接受model的
***在這里既然提到了Url不妨多說一句更好的性能優化方案,就是Glide請求圖片的url中可以有可以攜帶想要的圖片寬高參數,這樣在請求級別就已經做到了優化;
比如原圖片為1024*1024,你想要一個48*48的,那么帶寬會節省很多。但前提是你的服務器有能力處理這些事情!