zoukankan      html  css  js  c++  java
  • 【转】iOS中修改AVPlayer的请求头信息

    在开发中, 我们经常需要在网络请求时修改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];
    from:https://www.jianshu.com/p/31de0ef8ae97
  • 相关阅读:
    第六节:框架搭建之EF的Fluent Api模式的使用流程
    第五节:框架前期准备篇之锁机制处理并发
    第四节:框架前期准备篇之进程外Session的两种配置方式
    MySql安装成功后无法远程登录
    Java创建WebService
    C#模拟HTTP请求并发送二进制
    Java模拟POST请求发送二进制数据
    Java从内存流中读取byte数组
    C# 递归缩小图片
    Mongodb脚本记录
  • 原文地址:https://www.cnblogs.com/xuan52rock/p/8135449.html
Copyright © 2011-2022 走看看