RestKit 0.2 Ошибка «Ожидаемый код состояния в (400-499), получено 200»

Я использую RestKit 0.2 и получаю следующую ошибку.

E restkit.network:RKObjectRequestOperation.m:237 GET 'http://some.url.com/o/3134' (200 OK / 0 objects) [request=3.2563s mapping=0.0000s total=3.2955s]: Error Domain=org.restkit.RestKit.ErrorDomain Code=-1011 "Expected status code in (400-499), got 200" UserInfo=0x87712e0 {NSLocalizedRecoverySuggestion={"d":"2013-07-15T02:30:00.000Z","t":16.1,"at":13.8}, AFNetworkingOperationFailingURLRequestErrorKey=<NSMutableURLRequest http://some.url.com/o/3134>, NSErrorFailingURLKey=http://some.url.com/o/3134, NSLocalizedDescription=Expected status code in (400-499), got 200, AFNetworkingOperationFailingURLResponseErrorKey=<NSHTTPURLResponse: 0x9647260>}

Я использую nodejs и restify в качестве сервера. И я могу получить данные json с помощью Google Chrome, и я вижу, что Content-Type ответа — application/json в Chrome.

Но когда я использовал RestKit, я получил эту ошибку «Ожидаемый код состояния в (400-499), получил 200», я думаю, что 200 в порядке, почему RestKit ожидает 400–499, а не 200? И я также вижу объект json в сообщении об ошибке. который равен {"d":"2013-07-15T02:30:00.000Z","t":16.1,"at":13.8}.

Спасибо.


person Jake Lin    schedule 15.07.2013    source источник
comment
Покажите свои сопоставления и дескриптор ответа. Код состояния установлен там, поэтому что-то не совпадает.   -  person Wain    schedule 16.07.2013
comment
@Wain, спасибо, я узнал, что это проблема с отображением. пожалуйста, взгляните на github.com/RestKit/RestKit/issues/1501.   -  person Jake Lin    schedule 17.07.2013


Ответы (1)


Когда вы определяете дескриптор ответа для запроса, вам необходимо установить код состояния RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful), если вы ожидаете ответа с кодом состояния http 2xx.

Пример:

[RKResponseDescriptor responseDescriptorWithMapping:yourMapping method:RKRequestMethodAny pathPattern:yourPattern keyPath:nil statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];

ОБНОВЛЕНИЕ:

Убедитесь, что pathPattern дескриптора ответа соответствует пути запроса. В противном случае RestKit будет использовать дескриптор ответа об ошибке (если вы его определили) и ожидать ответа с другим кодом состояния.

person andreacipriani    schedule 27.06.2014
comment
Спасибо! Моя проблема была вызвана несоответствием в pathPattern, который вы упомянули. Исправление, которое исправило мою ситуацию. - person Clay Garrett; 02.10.2014