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);

}];

Но это выглядит некрасиво для меня. И до сих пор не могу понять о теле ответа.

Какие-либо предложения?

Ответы на вопрос(7)

Ваш ответ на вопрос