Я использую метод sendSynchronousRequest:returningResponse:error класса NSURLConnection для получения NSData из сети.
NSData *urlData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
Что я хочу сделать, так это проверить, действительно ли возвращаемое значение или нет. Итак, что я сделал, так это сравнил длину данных с ожидаемой длиной в заголовке ответа, как показано ниже.
NSData *urlData;
do {
urlData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
if ([urlData length] != [response expectedContentLength]) {
NSLog(@"WTF!!!!!!!!! NSURLConnection response[%@] length[%lld] [%d]", [[response URL] absoluteString], [response expectedContentLength], [urlData length]);
NSHTTPURLResponse *httpresponse = (NSHTTPURLResponse *) response;
NSDictionary *dic = [httpresponse allHeaderFields];
NSLog(@"[%@]", [dic description]);
}
} while ([urlData length] != [response expectedContentLength]);
Однако я не знаю, достаточно ли этого для обеспечения целостности возвращаемых данных. Я не могу проверить контрольную сумму файла на удаленном сервере.
Можете ли вы поделиться своим опытом или другими советами?
Спасибо.