美文网首页
图片资源音视频文件添加header防盗链Referer iOS

图片资源音视频文件添加header防盗链Referer iOS

作者: writeSpace | 来源:发表于2022-04-16 19:22 被阅读0次

flutter视频播放器

new VideoPlayerController.network("https://example.com/test.mp4",
    headers: {"你的key": "你的value"}
)

flutter图片资源

return CachedNetworkImage(
      httpHeaders: {"你的key":"你的value"},
      imageUrl: imgUrl,
      imageBuilder: (context, imageProvider) => Container(
        decoration: BoxDecoration(
          borderRadius: BorderRadius.circular(5),
          image: DecorationImage(image: imageProvider, fit: BoxFit.cover),
        ),
      ),
      placeholder: (context, url) => Image.asset(
          'assets/images/img_default_pic.png',
          height: 125,
          width: 93.5,
          fit: BoxFit.cover),
      errorWidget: (context, url, error) => Icon(Icons.error),
    );

iOS 原生OC 音视频

NSDictionary *header = @{@"你的key":@"你的value"};
    self.urlAsset = [AVURLAsset URLAssetWithURL:self.videoURL options:@{@"AVURLAssetHTTPHeaderFieldsKey":header}];

iOS swift 音视频

 let header = ["你的key":"你的value"]
            playerItem = AVPlayerItem(asset: AVURLAsset(url: URL.init(string: _url!)!, options: ["AVURLAssetHTTPHeaderFieldsKey":header]))

iOS swift 三方Monkey图片库

 public func y_setImageTask(with resource: Resource?,
                         placeholder: Placeholder? = nil,
                         options: KingfisherOptionsInfo? = nil,
                         progressBlock: DownloadProgressBlock? = nil,
                         completionHandler: CompletionHandler? = nil) -> RetrieveImageTask
    {
        //        if (self.isKind(of: UIImageView.self)  || self.isKind(of: UIImageView.self)) == false {
        ////必须是imageView 或者是 button
        assert((self.isKind(of: UIImageView.self)  || self.isKind(of: UIImageView.self)) == false , "obj not correct")
        //        }
        let modifier = AnyModifier { request in
            var r = request
            // replace "Access-Token" with the field name you need, it's just an example
            r.setValue("你的value", forHTTPHeaderField: "你的key")
            return r
        }
        var opt:KingfisherOptionsInfo = []
        opt.append(contentsOf: options ?? [])
        opt.append(.requestModifier(modifier))
        return self.kf.setImage(with: resource,
                                placeholder: placeholder,
                                options:  opt,
                                progressBlock: progressBlock,
                                completionHandler: completionHandler)
    }

iOS oc 原生 (swift自己翻译) headers可添加Referer 比如 @{@"key":@"value"}

    /// 获取图片size 通过URl
    /// - Parameters:
    ///   - imageUrl: imageUrl description
    ///   - b: b description
    open class func getImageSizeThroughtUrl(imageUrl:URL?,_ b:@escaping(_ h : CGSize)-> Void,_ headers:[String:String]) {
        let imageSize:CGSize = .zero
     guard let url = imageUrl else {return b(imageSize)}
        var request = URLRequest(url: url, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 30)
        for (key,value) in headers {
            request.addValue(value, forHTTPHeaderField: key)
        }
        
        let session = URLSession.shared
        let dataTask = session.dataTask(with: request) { (data, respons, error) in
            
            print(error as Any)
            guard let imgData = data else {return}
            if respons == nil {return}
            let str = String(data: data!, encoding: .utf8)
            print(str as Any)
            print(respons!)
            print(Thread.current)
            print("Thread.current")
            DispatchQueue.main.async {
                guard let image: UIImage = UIImage.init(data: imgData) else {return}
                let imgSize:CGSize = image.size
                if imgSize.width == 0 || imgSize.height == 0 {
                    b(imgSize)
                }else{
                    b(imgSize)
                }
            }
        }
        dataTask.resume()
    }

ios oc 三方 SdwebImage

 SDWebImageDownloader *sd = [SDWebImageManager sharedManager].imageDownloader;
 [sd setValue:@"value" forHTTPHeaderField:@"key"];

相关文章

网友评论

      本文标题:图片资源音视频文件添加header防盗链Referer iOS

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