最近公司说要做防盗链,要给所有的请求网络里面的请求头里加上自己的东西。于是我:
-
所有图片的请求加请求头
//这一段是添加在AppDelegate的didFinishLaunching方法里即可全局设置所有图片加载时添加了这个请求。
SDWebImageDownloader *sdmanager = [SDWebImageManager sharedManager].imageDownloader;
[sdmanager setValue:@"公司后台设置的值" forHTTPHeaderField:@"Referer"];
-
所有的播放视频的地方加了请求头
// 这一段写在你实例化AVPlayer的地方
NSMutableDictionary * headers = [NSMutableDictionary dictionary];
[headers setObject:@"公司后台设置的值"forKey:@"Referer"];
self.urlAsset = [AVURLAsset URLAssetWithURL:self.videoURL options:@{@"AVURLAssetHTTPHeaderFieldsKey" : headers}];
self.playerItem = [AVPlayerItem playerItemWithAsset:self.urlAsset];
self.player = [AVPlayer playerWithPlayerItem:self.playerItem];
-
PDF的请求URL初加了请求头
// PDF这边我是直接NSData接收的,所以处理稍微有点不同
NSURL *url=[NSURL URLWithString:pdfPathManlist];
NSURLRequest *downloadRequest = [[NSURLRequest alloc] initWithURL:url];
NSMutableURLRequest *mutableRequest = [downloadRequest mutableCopy];
[mutableRequest setValue:@"公司后台设置的值" forHTTPHeaderField:@"Referer"];
NSData* data = [NSURLConnection sendSynchronousRequest:mutableRequest returningResponse:NULL error:NULL];
-
请求网络框架里加了请求头
// 在请求网络的封装里,设置Header
NSDictionary *header = @{@"Referer":@"公司后台设置的值"};
[self setRequestHeader:header];
这样就设置好了整个APP里所有的请求网络里面的防盗链了,具体的还是要根据自己项目的业务做相关的处理。