我们通常用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"];