Я реализую AFHTTPClient как одноэлементный класс, как рекомендовано в документах, и вызываю его с данными JSON в сообщении и получаю взамен данные JSON:
[[BMNetworkCalls sharedInstance] postPath:theURL parameters:theDict success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"my return is: %@", [responseObject valueForKeyPath:@"Result"]);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"error in network call: %@", [error localizedDescription]);
}];
Все хорошо и хорошо, но если я получаю сообщение об ошибке ("ошибка в HTTPRequestOperation: ожидаемый код состояния в (200-299), получено 400"), я на самом деле хочу прочитать здесь responseObject. (именно так API, который я использую, сообщает мне, какой класс ошибки я вызвал).
Я мог бы сделать это с помощью AFJSONRequestOperation:
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
NSLog(@"my return is: %@", [JSON valueForKeyPath:@"Result"]);
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
NSLog(@"exception code: %@", [JSON valueForKeyPath:@"ExceptionCode"]);
NSLog(@"exception message: %@", [JSON valueForKeyPath:@"ExceptionMessage"]);
}];
[operation start];
Как я могу (и могу ли я?) сделать это с помощью AFHTTPClient?