瀏覽代碼

Merge pull request #15 from adamjernst/master

Only check HTTP status code if network error did not occur
Mattt Thompson 14 年之前
父節點
當前提交
a129302be5
共有 1 個文件被更改,包括 10 次插入8 次删除
  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
 {
     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) {