Я вижу, что есть список принятых кодов статуса http, которые я могу изменить, но я думаю, было бы чище, если бы я мог получить код статуса http в блоке сбоя ..
Хорошо, нашел ответ с операционным объектом
failure:^(AFHTTPRequestOperation *operation, NSError *error){
NSLog(@"error code %d",[operation.response statusCode]);
}];
afnetworking
ОбезьянаОбезьяна
источник
источник
[operation.request HTTPMethod]
В более новых версиях AFNetworking вы можете получить объект ответа из ошибки:
Это удобно, если вы выполняете обработку ошибок дальше по строке и не хотите передавать объект ответа.
источник
NSError *underlyingError = error.userInfo[@"NSUnderlyingError"]
Для AFNetworking 3.0 используйте
источник
Если запросы были отменены / недоступны / тайм-аут,
httpStatusCode
будет всегда0
.В качестве альтернативы вы можете определить проблему, изучив файл
operationStatusCode
. ЭтоNSError
объект.operationStatusCode
будет-1009
.operationStatusCode
будет-999
.Вы можете проверить все остальные
NSError
коды и их описания в документации Apple.источник
Мне удалось получить код состояния с помощью Swift 3:
источник
Это работает для меня Добавьте строку ниже к вашему запросу
manager.requestSerializer = [сериализатор AFJSONRequestSerializer];
источник