我們通常用SDWebImage來請求網絡的圖片,但是偶爾會遇到網頁需要登錄的情況,這時候我們發現直接用setImageWithURL來請求網絡圖片會請求失敗,怎麼辦呢?
當然我們想的是需要把網頁的賬號密碼加上,但是家在哪兒呢,用哪個方法呢?
研究了半天發現有這麼一個方法
[request setValue:authValue forHTTPHeaderField:@"Authorization"]
上面這句大家可以看到一個HTTPHeaderField,這是HTTP頭信息,有興趣的朋友可以去了解一下http://blog.csdn.net/zhenweicao/article/details/7911525。
這裏我們繼續,這個setValue就是我們需要設置的地方,將賬號密碼設置到這裏才能在請求圖片的時候把你的用戶名和信息輸入請求進去。那這個authValue怎麼設置呢?
NSString *authStr = @"username:password";
NSData *authData = [authStr dataUsingEncoding:NSASCIIStringEncoding];
NSString *authValue = [NSString stringWithFormat:@"Basic %@", [authData base64Encoded]];
是的這樣我們就能得到authValue。
那麼整個過程就是將以下代碼設置到SDWebImageDownloaderOperation.m中即可。
NSString *authStr = @"username:password";
NSData *authData = [authStr dataUsingEncoding:NSASCIIStringEncoding];
NSString *authValue = [NSString stringWithFormat:@"Basic %@", [authData base64Encoded]];
[self.request setValue:authValue forHTTPHeaderField:@"Authorization"];