Ho un problema nel gestire i dati analizzati JSON utilizzando AFNetworking.Analisi di JSON utilizzando l'eccezione AFNetworking 2.0
ecco il mio codice:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
NSDictionary *parameters = @{@"strEmail": _logInEmail.text, @"strPassword":_logInPassword.text};
[manager POST:@"http://carefid.com/api/user/login.php" parameters:parameters success:^
(AFHTTPRequestOperation *operation, id responseObject) {
//NSString *string = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
NSString *str = responseObject[@"error"];
NSLog(@"JSON: %@", str);
UIViewController *myController = [self.storyboard instantiateViewControllerWithIdentifier:@"rootController"];
[self presentViewController:myController animated:YES completion:nil];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
quando nel tentativo di registrare il valore ottengo questo errore:
2014-07-15 14:39:08.438 carefid[7858:60b] -[_NSInlineData objectForKeyedSubscript:]: unrecognized selector sent to instance 0x1094c67a0
2014-07-15 14:39:08.441 carefid[7858:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[_NSInlineData objectForKeyedSubscript:]: unrecognized selector sent to instance 0x1094c67a0'
*** First throw call stack:
(
0 CoreFoundation 0x0000000101d48495 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x00000001019c399e objc_exception_throw + 43
2 CoreFoundation 0x0000000101dd965d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
3 CoreFoundation 0x0000000101d39d8d ___forwarding___ + 973
4 CoreFoundation 0x0000000101d39938 _CF_forwarding_prep_0 + 120
5 carefid 0x000000010001f14f __34-[ViewController existingUserBtn:]_block_invoke + 95
6 carefid 0x0000000100015648 __64-[AFHTTPRequestOperation setCompletionBlockWithSuccess:failure:]_block_invoke46 + 40
7 libdispatch.dylib 0x0000000102669851 _dispatch_call_block_and_release + 12
8 libdispatch.dylib 0x000000010267c72d _dispatch_client_callout + 8
9 libdispatch.dylib 0x000000010266c3fc _dispatch_main_queue_callback_4CF + 354
10 CoreFoundation 0x0000000101da6289 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
11 CoreFoundation 0x0000000101cf3854 __CFRunLoopRun + 1764
12 CoreFoundation 0x0000000101cf2d83 CFRunLoopRunSpecific + 467
13 GraphicsServices 0x00000001040bef04 GSEventRunModal + 161
14 UIKit 0x0000000100570e33 UIApplicationMain + 1010
15 carefid 0x0000000100049183 main + 115
16 libdyld.dylib 0x00000001028cd5fd start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
Che cosa potrebbe causare questo problema? è il responseObject è un dizionario? se il mio codice è sbagliato, come dovrei gestirlo?
2014-07-15 15: 26: 19,765 carefid [8036: 60b] Errore: errore Dominio = com.alamofire.error.serialization.response Code = -1016 "Richiesta non riuscita: tipo di contenuto non accettabile: text/html" UserInfo = 0x10d924d10 {com.alamofire.serialization.response.error.response = ora ottengo questo errore .. –
OshriALM
Il tuo server sta inviando il contenuto JSON all'app come 'text/html' che non è corretto e se possibile dovrebbe essere cambiato sul server a' application/json', 'text/json' o' text/javascript' – rckoenes
c'è un modo in cui posso gestirlo da parte mia? – OshriALM