Przeszukałem bezskutecznie i mam nadzieję na twoją pomoc w tej sprawie.totalBytesExpectedToRead w setDownloadProgressBlock pozostaje -1 dopóki pobieranie nie zostanie wykonane
Próbowałem pobrać obraz, korzystając z transmisji strumieniowej AFHTTPRequestOperation (ustawiając strumień danych wyjściowych). Pobiera plik, nie ma problemu. Ale pasek postępu nie będzie wyświetlany poprawnie, ponieważ totalBytesExpectedToRead zawsze zwraca -1, a zwraca tylko poprawną wartość po zakończeniu pobierania.
Czy to jest charakter przesyłania strumieniowego? Czy zrobiłem coś złego?
Mój kod poniżej.
Z góry dziękuję!
(void) invokeAsynchronousSTREAMING (NSString *) locationToSave ścieżki: (*) NSString parametry locationToSave (NSDictionary *) paramDict callId (NSString *) callId {
NSMutableURLRequest *request = [[AFServerAPIClient sharedClient] requestWithMethod:@"GET"
path:path
parameters:paramDict];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
if(locationToSave!=nil) {
operation.outputStream = [NSOutputStream outputStreamToFileAtPath:locationToSave append:NO];
}
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
//DO SOMETHING
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
//DO SOMETHING
}
];
[operation setDownloadProgressBlock:^(NSInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead) {
NSLog(@"invokeAsyncronousSTREAMING - Received %lld of %lld bytes", totalBytesRead, totalBytesExpectedToRead);
//DO SOMETHING
}];
[operation start];
} // koniec invokeAsyncStreaming