por qué siempre devuelve -1

-(void) connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; if([recievedData length]) [ recievedData setLength:0 ]; download_size =[response expectedContentLength]; } 

Tengo este código. download_size es NSInteger. expectedContentLenght siempre devuelve: -1. Tal vez alguien sepa por qué? Intenté usarlo por mucho tiempo, pero el efecto fue el mismo.

Gracias por la ayuda.

La duración del contenido esperado solo se establece cuando el servidor lo proporciona, por ejemplo, mediante un encabezado de respuesta Content-Length. Un tamaño -1 significa que el tamaño de contenido esperado es desconocido.

Si configura Accept-Encoding: gzip en su solicitud, el sistema de carga de URL se mostrará y le indicará que el tamaño esperado es -1, independientemente de la longitud del contenido que envíe el servidor. Esto se debe a que descomprime los datos antes de pasárselos, pero no puede conocer el tamaño final sin comprimir hasta que se hayan descargado todos los datos, lo que ocurre mucho después de recibir esta callback.

Mientras sepa, NSURLResponse no actualiza esa propiedad. En su lugar, necesita usar NSHTTPURLResponse …