Riddle мне это: Я использую NSURLConnection на iPhone Simulator SDK 3.1.2 объекта выдавать несколько последовательный (не одновременно) HTTPS запросов. Все отлично работает 95% времени, но каждый так часто (возможно, около 50-100 запросов) я получаю ситуацию, когда метод делегатаNSURLConnection Преемник, без HTTP Response
- (void)connectionDidFinishLoading:(NSURLConnection *)connection;
вызывается после того, как [начать соединение], но без любого вызова делегатному методу
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
Я уменьшил проблему до источника ниже. Из того, что я понимаю, это нарушает контракт определенного поведения NSURLConnection. У кого-нибудь еще была эта проблема, и это известная ошибка, или я неправильно использую NSURLConnection?
static BOOL hasSeenResponse = NO;
//Create a NSURLConnection and start it
-(void) begin {
NSURL* url = [NSURL [email protected]"https://some.domain.com/some/path/?some=query"];
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyNever];
NSURLRequest* request = [NSURLRequest requestWithURL:url];
if ([NSURLConnection canHandleRequest:request]) {
NSURLConnection* connection = [[NSURLConnection connectionWithRequest:request delegate:self] retain];
hasSeenResponse = NO;
[connection start];
}
}
#pragma mark NSURLConnection Delegate Methods
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
if (!hasSeenResponse) {
NSLog(@"\n\nNo Response Recieved\n");
}
[connection release];
[self begin];
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
[connection release];
[self begin];
}
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
hasSeenResponse = YES;
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
}