302重定向后,AVPlayer无法为同一域发送cookie

时间:2013-06-07 20:48:05

标签: ios objective-c avplayer http-live-streaming nshttpcookie

我正在使用iOS AVPlayer播放HLS流。在HLS会话开始时,当我收到index.m3u8 URL以响应创建AVPlayerItem时,响应还会设置基于会话的身份验证所需的cookie。假设这个cookie名称是myCookie,它是为域“.myhost.com”创建的。现在一切正常,播放器发送myCookie从xxx.myhost.com/stream下载ts块。随着播放的进行,播放列表最终会更新,播放器会下载更新的播放列表。有时,更新的播放列表包含从其他主机的URL下载的ts块。因此,当尝试使用不同的主机播放块时,播放器请求xxx.someotherhost.com下载块。这导致响应302重定向与位置:xxx-abc.myhost.com/ads。显然AVPlayer在从someotherhost.com请求一个块时不发送myCookie,因为它与myCookie的域不匹配。但问题是在重定向到xxx-abc.myhost.com/ads后,AVPlayer不发送myCookie,即使重定向URL的域名也是myhost.com,也与cookie的域匹配。

请注意,重定向网址域与原始流域相同,也与myCookie的域相同。由于AVPlayer在重定向后没有将cookie发送到下载块,因此ts块请求失败并显示403 Forbidden(No Token)

我在这里做错了什么,或者这看起来像iOS AVPlayer中的错误?

有没有办法解决这个问题?请分享你的想法。

1 个答案:

答案 0 :(得分:1)

制作一个演示该问题的示例,提交错误报告。然后创建一个提到Radar的DTS事件,并且您正在寻找一个解决方案来解决您认为的错误。

这开辟了两种可能性:

  • 工程师可以确认错误 - 如果不知道他们会修复它,如果它是重复的,你可以请求原始的状态信息
  • DTS知识渊博,能够向实际的AV工程师询问如何解决这个问题

通过这种方式,您可以花更少的时间来寻找除此之外的任何其他答案。

相关问题