2016-09-05 4 views
4

Так что API, с которым я работаю, иногда отправляет сообщение об ошибке в тело ответа, когда запрос терпит неудачу. Это расположено в response.data. Иногда это JSON, иногда это строка. Я использую метод validate, поэтому result.value является nil при возникновении ошибки.Alamofire Parse Response Данные при отказе подтверждения

Есть ли способ, чтобы Alamofire сериализовал данные из NSData в строку или для JSON до [ String : AnyObject ], как если бы ответ был успешным?

Я хотел бы продолжать использовать метод проверки.

EDIT: Вот ссылка на запрос функции Я начал работу над проектом Alamofire GitHub.

https://github.com/Alamofire/Alamofire/issues/1459

ответ

3

Существует не в данный момент. Сейчас я работаю над этой особенностью в Alamofire 4. В Alamofire 3 вам придется самостоятельно разобрать response.data, если вы получите эту ошибку проверки. В Alamofire 4 вы, по крайней мере, получите доступ к response.data во время проверки, а также сможете настроить Error, который генерируется путем проверки.

Скорее всего, окончательное решение будет состоять в том, чтобы проверить проверку, если вы знаете, что будет ошибка (проверка кода состояния и заголовков). Затем, основываясь на типе ошибки, вы можете проанализировать response.data, чтобы извлечь сообщение об ошибке с сервера и выбросить ОЧЕНЬ СПЕЦИФИЧЕСКУЮ ошибку из проверки. Скорее всего, это позволит новая система. Таким образом, вы можете идентифицировать ошибки токена доступа OAuth2 прямо в валидации и выбросить свою собственную ошибку, а не использовать запутанную систему сериализаторов ответов для этого.

+0

Спасибо! Я, вероятно, добавлю запрос функции, чтобы попросить, чтобы данные использовали сериализатор, даже если проверка не удалась. – Tobias