Потоковое аудио iOS с сервера с аутентификацией на основе файлов cookie - PullRequest
6 голосов
/ 03 ноября 2011

Я пытаюсь транслировать аудиофайл с сервера, защищенного сессионной аутентификацией, и заметил, что и MPMoviePlayerController, и AVPlayerItem / AVPlayer, похоже, не используют файлы cookie, установленные в NSHTTPCookieStorage. Если я сделаю тот же URL-запрос, используя NSURLConnection, я получу 200 и смогу получить доступ к аудиофайлу. Когда я отслеживаю запросы через прокси, кажется, что MPMoviePlayerController не устанавливает cookie в заголовке запроса, в то время как NSURLConnection делает:

Запрос сделан с помощью MPMoviePlayerController's initWithContentURL:

GET /path/on/server/test1.m4a HTTP/1.1
Host: server.example.net
User-Agent: AppleCoreMedia/1.0.0.9A334 (iPhone Simulator; U; CPU OS 5_0 like Mac OS X; en_us)
Accept: */*
Range: bytes=0-1
Accept-Encoding: identity
X-Playback-Session-Id: E8F093F4-C906-46A8-94FE-30BBCFDAB3F6
Connection: keep-alive

Запрос сделан с NSURLConnection:

GET /path/on/server/test1.m4a HTTP/1.1
Host: server.example.net
User-Agent: otest (unknown version) CFNetwork/548.0.3 Darwin/11.1.0
Accept: */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Cookie: somekey=abc123def456
Connection: keep-alive

Кто-нибудь знает, как заставить MPMoviePlayerController или AVPlayerItem использовать NSHTTPCookie при запросе удаленного ресурса?

Ответы [ 2 ]

3 голосов
/ 24 апреля 2014

Вы можете перехватить запрос от MPMoviePlayerController, используя класс, производный от NSURLProtocol, и по ходу вставлять куки.Вот код: https://stackoverflow.com/a/23261001/3547099

1 голос
/ 05 ноября 2011

AFAIK не позволяет принудительно использовать куки (или любые другие дополнительные HTTP-параметры) при использовании MPMoviePlayerController для удаленных потоков / файлов.

Может быть, GET-параметр был бы возможным решением вашей задачи?

...