iOS中修改AVPlayer的请求头信息

作者: 李小南 | 来源:发表于2017-03-15 14:17 被阅读902次

在开发中, 我们经常需要在网络请求时修改HTTP/HTTPS的请求头信息

1.普通AFN请求

#import "LMHTTPSessionManager.h"

#import <AFNetworking/AFNetworking.h>

@interface LMHTTPSessionManager : AFHTTPSessionManager

@end

@implementation LMHTTPSessionManager

- (instancetype)initWithBaseURL:(NSURL *)url sessionConfiguration:(NSURLSessionConfiguration *)configuration
{
    if (self = [super initWithBaseURL:url sessionConfiguration:configuration]) {
        [self.requestSerializer setValue:Version forHTTPHeaderField:@"1.0"];
        [self.requestSerializer setValue:@"iOS" forHTTPHeaderField:@"SYSTYPE"];
        [self.requestSerializer setValue:@"XXX/iOS/v"forHTTPHeaderField:@"User-Agent"];
    }
    return self;
}
@end

2.AVPlayer播放视频链接修改请求头

由于公司做视频原创网站, 盗链现象特别严重, 每个月公司都要损失很多钱, 老板就火了, 做防盗链, 请求头认证客户端, 然后我就一脸懵逼啊, 国内百度, 国外谷歌啊, AVFoundation中的几个类头文件都翻遍了, 是在实找不到怎么修改请求头信息啊

后面虽然解决了, 还是写篇文章, 方便下后面的开发者吧

NSMutableDictionary * headers = [NSMutableDictionary dictionary];
[headers setObject:@"YourHeader"forKey:@"User-Agent"];
self.urlAsset = [AVURLAsset URLAssetWithURL:self.videoURL options:@{@"AVURLAssetHTTPHeaderFieldsKey" : headers}];
// 初始化playerItem
self.playerItem = [AVPlayerItem playerItemWithAsset:self.urlAsset];
self.player = [AVPlayer playerWithPlayerItem:self.playerItem];

相关文章

网友评论

  • 管你爱不爱:videoAsset = [AVURLAsset URLAssetWithURL:[_videoUrl mj_url] options:@{@"AVURLAssetHTTPHeaderFieldsKey":@{@"Authorization":strone}}];我也是这样设置了,但是不行
    71e3929a07ba:@管你爱不爱 你设置成功了没?我这也需要设置,了解下
    管你爱不爱:抓什么包?看什么呢?
    李小南:看上去没啥问题, 建议抓包看一下, 很多人都是这样的, 仔细检查下吧
  • 74ad1410f550:有人说这是私有key 会不会被拒?
    74ad1410f550:@李小南 好的 谢谢
    李小南:不会, 反正我没被拒
  • 风铃的翼:我这样写还是加载不出来啊,是什么原因啊
    李小南:你好好检查下吧, 我写的代码是没有问题的
    风铃的翼:@李小南 是的,AVPlayer
    李小南:@风铃的翼 什么请求头?avplayer吗?仔细检查下

本文标题:iOS中修改AVPlayer的请求头信息

本文链接:https://www.haomeiwen.com/subject/sjmlnttx.html