Browse Source

Merge pull request #15 from adamjernst/master

Only check HTTP status code if network error did not occur
Mattt Thompson 14 years ago
parent
commit
a129302be5
1 changed files with 10 additions and 8 deletions
  1. 10 8
      AFNetworking/AFJSONRequestOperation.m

+ 10 - 8
AFNetworking/AFJSONRequestOperation.m

@@ -64,14 +64,16 @@ static dispatch_queue_t json_request_operation_processing_queue() {
                    failure:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error))failure
                    failure:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error))failure
 {
 {
     return [self operationWithRequest:urlRequest completion:^(NSURLRequest *request, NSHTTPURLResponse *response, NSData *data, NSError *error) {        
     return [self operationWithRequest:urlRequest completion:^(NSURLRequest *request, NSHTTPURLResponse *response, NSData *data, NSError *error) {        
-        BOOL statusCodeAcceptable = [acceptableStatusCodes containsIndex:[response statusCode]];
-        BOOL contentTypeAcceptable = [acceptableContentTypes containsObject:[response MIMEType]];
-        if (!statusCodeAcceptable || !contentTypeAcceptable) {
-            NSMutableDictionary *userInfo = [NSMutableDictionary dictionary];
-            [userInfo setValue:[NSHTTPURLResponse localizedStringForStatusCode:[response statusCode]] forKey:NSLocalizedDescriptionKey];
-            [userInfo setValue:[request URL] forKey:NSURLErrorFailingURLErrorKey];
-            
-            error = [[[NSError alloc] initWithDomain:NSURLErrorDomain code:[response statusCode] userInfo:userInfo] autorelease];
+        if (!error) {
+            BOOL statusCodeAcceptable = [acceptableStatusCodes containsIndex:[response statusCode]];
+            BOOL contentTypeAcceptable = [acceptableContentTypes containsObject:[response MIMEType]];
+            if (!statusCodeAcceptable || !contentTypeAcceptable) {
+                NSMutableDictionary *userInfo = [NSMutableDictionary dictionary];
+                [userInfo setValue:[NSHTTPURLResponse localizedStringForStatusCode:[response statusCode]] forKey:NSLocalizedDescriptionKey];
+                [userInfo setValue:[request URL] forKey:NSURLErrorFailingURLErrorKey];
+                
+                error = [[[NSError alloc] initWithDomain:NSURLErrorDomain code:[response statusCode] userInfo:userInfo] autorelease];
+            }
         }
         }
         
         
         if (error) {
         if (error) {