I would like to detect when a page load request give to a UIWebView has returned a status code in the 5xx or 4xx range.
I’ve setup the delegate for the web view and have provided a -webView:didFailLoadWithError:error method but although it gets called fine for timeouts, it is not called for HTTP Status Code errors.
Any suggestions?
Hmmm… I’m not an iPhone developer, but….
Could you try creating an NSURLRequest with the URL you want to load? Then you could make the connection using NSURLConnection.
NSURLConnection has a delegate method
which will give the the response from the server. Please note that if you are making the connection over HTTP, the response will actually be of class NSHTTPURLResponse. The NSHTTPURLResponse can be used to get the status using the following instance method
NSURLConnection has another delegate method
that can be used to get the data from the URL Connection. You could then manually load the data into your UIWebView using:
That seems like a ton of work, but it could be done. Hopefully someone else will come up with the easier way, though I don’t see it.