AFNetworking 2.0 AFHTTPSessionManager: ¿cómo obtener el código de estado y la respuesta JSON en el bloque de falla?

Cuando se cambió a AFNetworking 2.0, AFHTTPClient se reemplazó por AFHTTPRequestOperationManager / AFHTTPSessionManager (como se menciona en la guía de migración). El primer problema que encontré al usar el AFHTTPSessionManager es cómo recuperar el cuerpo de la respuesta en el bloque de falla.

Aquí hay un ejemplo:

[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?
}];

En el bloque de éxito me gustaría recuperar el código de estado de la respuesta. En el bloque de falla, me gustaría recuperar tanto el código de estado de la respuesta como el contenido (que es JSON en este caso que describe el error del lado del servidor).

NSURLSessionDataTask tiene una propiedad de respuesta de tipo NSURLResponse, que no tiene el campo statusCode. Actualmente puedo recuperar el código de estado de esta manera:

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

}];

Pero esto me parece feo. Y todavía no puedo averiguar sobre el cuerpo de la respuesta.

¿Alguna sugerencia?

Respuestas a la pregunta(7)

Su respuesta a la pregunta