Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed using AFNetworking

Tags:

I am using AFNetworking library to post data on server using POST method.

Following is my code

- (void) callLoginAPI:(NSDictionary *)dictProfile{     // 1     NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:[dictProfile valueForKey:@"name"], @"username",                                                                     [dictProfile valueForKey:@"first_name"],@"first_name",                                                                     [dictProfile valueForKey:@"last_name"],@"last_name",                                                                     [dictProfile valueForKey:@"email"],@"email",                                                                     [dictProfile valueForKey:@"birthday"],@"dob",                                                                     [dictProfile valueForKey:@"gender"],@"gender",                                                                     [[dictProfile valueForKey:@"location"] valueForKey:@"name"],@"location",                                                                     [dictProfile valueForKey:@"timezone"],@"timezone",                                                                     @"",@"language",                                                                     [NSString stringWithFormat:@"http://graph.facebook.com/%@/picture?type=large",[dictProfile valueForKey:@"id"]],@"profile_pic_url",                                                                     @"",@"cover_pic_url",nil];        AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];     manager.requestSerializer = [AFJSONRequestSerializer serializer];        [manager POST:@"http://10.1.81.35:8000/api/login/" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {         NSLog(@"JSON: %@", responseObject);     } failure:^(AFHTTPRequestOperation *operation, NSError *error) {         NSLog(@"Error: %@", error);     }]; } 

but I got following error in response

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=0x797f2620 {NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.} 

I can't understand what is the problem with the code.

like image 309
user1954352 Avatar asked Oct 07 '14 10:10

user1954352


1 Answers

The problem comes from response parsing. You are trying to de-serialize a JSON reponse (which MUST be contained in either a NSArray or NSDictionary) however your response is none of the above (Most likely a simple string).

Also, try to set the "allow fragments" to the response serializer.

AFJSONResponseSerializer *responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions:NSJSONReadingAllowFragments]; 
like image 73
Vlad Avatar answered Sep 25 '22 08:09

Vlad