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"];
网友评论