0
谜语我:我使用的是NSURLConnection的的iPhone模拟器SDK 3.1.2对象上发出多个连续的(不兼)HTTPS请求。一切正常,95%的时间,但每隔一段时间(也许50-100左右的请求)我得到其中的委托方法NSURLConnection的成功,没有HTTP响应
- (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 {
}