Cocoa Error 3840 when POST Request with AFNetworking 2
Solution 1
I solved it by adding following line of code
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
Solution 2
Had been stuck with the same problem.
I solved it by this:
self.requestSerializer = [AFJSONRequestSerializer serializer];
i.e. double check whether the AFHTTPRequestOperationManager
uses correct request serializer.
Hope this can help you!
Solution 3
I solved this by making sure the returned data is in the correct serialization with google spreadsheets XML response (instead of JSON)
manager.responseSerializer = [AFXMLParserResponseSerializer serializer];
Solution 4
I solved it by adding following line of code
manager.requestSerializer = [AFJSONRequestSerializer serializer];
Kiattisak Anoochitarom
Updated on June 22, 2022Comments
-
Kiattisak Anoochitarom about 2 years
I call this function and return Cocoa Error 3840 every time. I try to debug and fix it and it error when request rather than when parse the result
I found this error in failure blocks when request.
Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (JSON text did not start with array or object and option to allow fragments not set.) UserInfo=0x109230960 {NSDebugDescription=JSON text did not start with array or object and option to allow fragments not et.} 2013-11-01 12:09:30.925 MagicBox[87431:70b] The operation couldn’t be completed. (Cocoa error 3840.)
That's my code Thanks in Advance.
- (void)loginWithUserName:(NSString *)userName Password:(NSString *)password orFacebook:(NSString *)facebookID withResponseBlock:(ResponseBlock)responseBlock { if (!userName && !facebookID) { NSError *error = [NSError errorWithDomain:@"Missing Parameters" code:400 userInfo:@{ NSLocalizedDescriptionKey : @"Username or FacebookID is required"}]; responseBlock(error, nil); } NSDictionary *params; if (facebookID) { params = @{ @"fb_id": facebookID }; } else { params = @{ @"username": userName, @"password": password }; } AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; NSString *loginURL = [self requestWithPath:@"/api/login"]; [manager POST:loginURL parameters:params constructingBodyWithBlock:nil success:^(AFHTTPRequestOperation *operation, id responseObject) { if (responseBlock) { responseBlock(nil, responseObject); } } failure:^(AFHTTPRequestOperation *operation, NSError *error) { if (responseBlock) { responseBlock(error, nil); } }]; }
-
Leonly91 over 8 yearsSolve my problem,Thanks.