如何将自定义HTTP标头添加到AVAssetResourceLoaderDelegate加载请求中

时间:2017-02-23 12:50:09

标签: ios swift avfoundation

我需要在AVURLAsset AVAssetResourceLoaderDelegate加载resourceLoader(:shouldWaitForLoadingOfRequestedResource:)时向媒体加载请求添加自定义HTTP标头。

AVAssetResourceLoadingRequest' s request是一个不可变的属性,因此无法在其上调用addValue(...)

redirect上的AVAssetResourceLoadingRequest请求属性,理论上可以用作原始请求加上必要的标题,但它似乎没有效果(即请求是制作没有自定义标题。)

修改:正如我所怀疑的那样,resourceLoader(:shouldWaitForLoadingOfRequestedResource:)回调是在调度loadingRequest.request后调用的。

修改2 :所以AVURLAsset确实有AVURLAssetHTTPCookiesKey选项键,这样就可以添加自定义Cookie,但不会添加任意HTTP标头。

1 个答案:

答案 0 :(得分:1)

resourceLoader(:shouldWaitForLoadingOfRequestedResource:)方法的实现中,您应该具有类似以下代码的内容:

// somehow create the URLRequest that you need with the correct headers
let redirectRequest: URLRequest
loadingRequest.redirect = redirectRequest
loadingRequest.finishLoading

// tell the resource loader that you know how it should handle the request
return true

这是一个奇怪的界面,文档可能更清晰,但我认为这基本上是你需要的。