У меня есть следующий код: - (., Например, половина ответа JSON из API)Как проверить частичный ответ от sendAsynchronousRequest: queue: completeHandler :?
NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://some-example-domain.com/api"]
cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData
timeoutInterval:30.0];
[NSURLConnection sendAsynchronousRequest:theRequest
queue: [NSOperationQueue mainQueue]
completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
if (!error && data) {
// success!! - no errors and data returned
NSLog(@"success");
} else {
// error!! - something whent wrong
NSLog(@"failure: %@", [error localizedDescription]);
}
}
];
, который хорошо работает кроме для нечетных случаев, когда сервер посылает только часть требуемого ответа (это еще является «успешным» в соответствии с моим заявлением «если»)
Есть ли способ использования этого блочного метода, который я могу проверить, чтобы убедиться, что полученные данные завершены?
Я попытался заглянуть в ответ NSURLResponse *, но не могу понять, как его использовать (или, если это действительно полезно в этом сценарии). Любые идеи о том, как тестировать «частично полученные» данные, возвращаемые блоком?
Я думаю, что частичные данные будут проблемой на сервере. – woz
@woz - да, проблема с сервером - но я хочу проверить частично полученный ответ от изворотливого сервера, прежде чем пытаться разобрать данные. –
Не могли бы вы сделать это прямо в 'completeHandler'? – woz