NSUrlConnectionDelegate - Getting http status codes
Yes, you can get status code in delegate method -didRecieveResponse:
- (void) connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{ NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response; int code = [httpResponse statusCode];}
NSHTTPURLResponse* urlResponse = nil;NSError *error = nil;responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error];
The aSynchronous request should also have a way to get the NSHTTPURLResponse..
You get the status code like this:
int statusCode = [urlResponse statusCode];int errorCode = error.code;
In the case of some much used error codes (like 404) it will get put in the error but with a different code (401 will be -1012).
Here's how to do it in MonoTouch for .NET for those C# users. THis is in the NSUrlConnectionDelegate.
public override void ReceivedResponse (NSUrlConnection connection, NSUrlResponse response){ if (response is NSHttpUrlResponse) { var r = response as NSHttpUrlResponse; Console.WriteLine (r.StatusCode); }}