warum [Antwort expectedContentLength] immer -1 zurück
-(void) connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
if([recievedData length]) [ recievedData setLength:0 ];
download_size =[response expectedContentLength];
}
Habe ich diesen code. download_size ist NSInteger.
expectedContentLenght immer wieder: -1.
Vielleicht hat jemand wissen, warum? Ich habe versucht, verwenden Sie lange, aber die Wirkung war die gleiche.
Danke für die Hilfe.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der erwarteten Länge des Inhalts ist nur gesetzt, wenn der server bietet es, wie durch ein Content-Length-header der Antwort. -1 Größe bedeutet, die erwartete Größe des Inhalts ist unbekannt.
Wenn Sie
Accept-Encoding: gzip
auf Ihre Anfrage, die URL-loading-system wird flunkern und sagen Sie die zu erwartende Größe ist -1, egal was Content-Length der server sendet. Dies ist, weil es dekomprimiert die Daten vor der übergabe an Sie, aber man kann es nicht wissen, die endgültige unkomprimierte Größe, bis alle Daten heruntergeladen wurden, die gut zu machen, nachdem Sie diesen Rückruf.NSMutableURLRequest
und sagen[req setValue:@"" forHTTPHeaderField:@"Accept-Encoding"]
. (Ich lernte dies aus einer Antwort auf eine "duplizieren" Frage. )Solange ich weiß, NSURLResponse nicht update-Eigenschaft. Sie benötigen NSHTTPURLResponse statt...