我有以下代码:
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]);
}
}
];
效果很好 -除了服务器只发送部分所需响应(例如来自 API 的 JSON 响应的一半)的奇怪情况(根据我的“if”语句它仍然是“成功的”)
有什么方法可以使用这种基于块的方法来检查接收到的数据是否完整?
我曾尝试研究 NSURLResponse *response - 但不能完全弄清楚如何使用它(或者,如果它在这种情况下确实有用)。关于如何测试块返回的“部分接收”数据的任何想法?