From 71a7a0664990a7fc78b569c18cbcf666e8aa7632 Mon Sep 17 00:00:00 2001 From: dstnbrkr Date: Fri, 21 Oct 2011 10:43:28 -0700 Subject: [PATCH] Only check content type when response has content. --- AFNetworking/AFHTTPRequestOperation.m | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/AFNetworking/AFHTTPRequestOperation.m b/AFNetworking/AFHTTPRequestOperation.m index dc7fbcf..c64096c 100644 --- a/AFNetworking/AFHTTPRequestOperation.m +++ b/AFNetworking/AFHTTPRequestOperation.m @@ -23,6 +23,7 @@ #import "AFHTTPRequestOperation.h" @interface AFHTTPRequestOperation () +- (BOOL)hasContent; @property (readwrite, nonatomic, retain) NSError *error; @end @@ -61,7 +62,7 @@ [userInfo setValue:[self.request URL] forKey:NSURLErrorFailingURLErrorKey]; self.error = [[[NSError alloc] initWithDomain:AFNetworkingErrorDomain code:NSURLErrorBadServerResponse userInfo:userInfo] autorelease]; - } else if (![self hasAcceptableContentType]) { + } else if ([self hasContent] && ![self hasAcceptableContentType]) { // Don't invalidate content type if there is no content NSMutableDictionary *userInfo = [NSMutableDictionary dictionary]; [userInfo setValue:[NSString stringWithFormat:NSLocalizedString(@"Expected content type %@, got %@", nil), self.acceptableContentTypes, [self.response MIMEType]] forKey:NSLocalizedDescriptionKey]; [userInfo setValue:[self.request URL] forKey:NSURLErrorFailingURLErrorKey]; @@ -73,15 +74,16 @@ return _HTTPError; } +- (BOOL)hasContent { + return [self.responseData length] > 0 && [self.response statusCode] != 204; +} + - (BOOL)hasAcceptableStatusCode { return !self.acceptableStatusCodes || [self.acceptableStatusCodes containsIndex:[self.response statusCode]]; } - (BOOL)hasAcceptableContentType { - // Don't invalidate content type if there is no content - BOOL hasNoContent = [self.responseData length] == 0 || [self.response statusCode] == 204; - - return !self.acceptableContentTypes || [self.acceptableContentTypes containsObject:[self.response MIMEType]] || hasNoContent; + return !self.acceptableContentTypes || [self.acceptableContentTypes containsObject:[self.response MIMEType]]; } #pragma mark - AFHTTPClientOperation