2011-11-03 11 views
6

Estoy tratando de transmitir un archivo de audio desde un servidor protegido por autenticación basada en sesiones, y me he dado cuenta de que tanto MPMoviePlayerController como AVPlayerItem/AVPlayer no parecen estar usando las cookies establecidas en NSHTTPCookieStorage. Si realizo la misma solicitud de URL usando un NSURLConnection, obtengo un 200 y puedo acceder al archivo de audio. Cuando puedo monitorear las solicitudes a través de un proxy, parece que MPMoviePlayerController no establece la cookie en el encabezado de la solicitud, mientras que NSURLConnection hace:iOS Stream Audio del servidor con autenticación basada en cookies

Petición realizada con initWithContentURL de MPMoviePlayerController:

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 

Petición realizada con 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 

¿alguien sabe cómo conseguir MPMoviePlayerController o AVPlayerItem que utilizan un NSHTTPCookie al solicitar un recurso remoto?

Respuesta

1

AFAIK no hay forma de hacer cumplir las cookies (o cualquier otro parámetro HTTP adicional) al usar MPMoviePlayerController en secuencias/archivos remotos.

¿Tal vez un parámetro GET sería una posible solución para su tarea?

+2

Esto es básicamente lo que encontré también. Terminé bifurcando el AudioStreamer de Matt Gallagher y modificándolo para que sea compatible con encabezados HTTP personalizados: https://github.com/arifken/AudioStreamer –

Cuestiones relacionadas