AFNetworking 2.0 AFHTTPSessionManager: как получить код состояния и ответ JSON в блоке сбоя?
При переключении на AFNetworking 2.0 AFHTTPClient был заменен AFHTTPRequestOperationManager / AFHTTPSessionManager (как упомянуто в руководстве по миграции). Самая первая проблема, с которой я столкнулся при использовании AFHTTPSessionManager, это как получить тело ответа в блоке сбоя?
Вот пример:
[self.sessionManager POST:[endpoint absoluteString] parameters:params success:^(NSURLSessionDataTask *task, id responseObject) {
// How to get the status code?
} failure:^(NSURLSessionDataTask *task, NSError *error) {
// How to get the status code? response?
}];
В блоке успеха я хотел бы получить код состояния ответа. В блоке сбоя я хотел бы получить как код состояния ответа, так и его содержимое (в данном случае это JSON, описывающее ошибку на стороне сервера).
NSURLSessionDataTask имеет свойство ответа типа NSURLResponse, которое не имеет поля statusCode. В настоящее время я могу получить statusCode следующим образом:
[self.sessionManager POST:[endpoint absoluteString] parameters:params success:^(NSURLSessionDataTask *task, id responseObject) {
// How to get the status code?
} failure:^(NSURLSessionDataTask *task, NSError *error) {
NSHTTPURLResponse *response = (NSHTTPURLResponse *)task.response;
DDLogError(@"Response statusCode: %i", response.statusCode);
}];
Но это выглядит некрасиво для меня. И до сих пор не могу понять о теле ответа.
Какие-либо предложения?