NSURLConnection timeout?
I'm using this NSURLConnection with delegates.
nsconnection = [[NSURLConnection alloc] initWithRequest:request
delegate:self startImmediately:YES];
Problem is the website doesn't respond at all. Nothing, just spins in browser with blank page, no failure. In my delegates, I handle the failure, but when the site doesn't respond the delegates don't get called. Any ideas on how to timeout the connection?
Solution 1:
You can specify a timeout in your NSURLRequest
object. One way to do this is to construct it via the requestWithURL:cachePolicy:timeoutInterval:
method. (You can pass in the default NSURLRequestUseProtocolCachePolicy
cachePolicy parameter if you don't want to worry about that part.) The timeout is a floating-point value in seconds, as are basically all time intervals in the iPhone SDK.
Also make sure your NSURLConnection
's delegate is set and responds to the connection:didFailWithError:
method. A connection always calls either this method or connectionDidFinishLoading:
upon connection completion.
Solution 2:
Edit: This answer is now obsolete, but at the date of answering was accurate.
I know this thread is old, but I ran into this issue as well. This happened when testing the app outside the internal network where the services lived. The service will eventually timeout, but Apple mandates a period of 240 seconds (4 minutes) before the time out occurs. Check out this thread for more info on the matter.
NSMutableURLRequest not obeying my timeoutInterval