4

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を使用し、サーバー側としてresifyします。また、Google Chrome を使用して json データを取得できます。レスポンスの Content-Type が Chrome の application/json であることがわかります。

しかし、RestKit を使用すると、「Expected status code in (400-499), got 200」というエラーが表示されました。200 で問題ないと思いますが、なぜ RestKit は 200 ではなく 400 - 499 を期待しているのでしょうか? また、エラー メッセージにも json オブジェクトが表示されます。{"d":"2013-07-15T02:30:00.000Z","t":16.1,"at":13.8} です。

ありがとう。

4

1 に答える 1

6

リクエストのレスポンス記述子を定義するときに、HTTP ステータス コード 2xx のレスポンスが予想される場合は、ステータス コードを RKStatusCodeIndexSetForClass( RKStatusCodeClassSuccessful ) に設定する必要があります。

例:

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

アップデート:

応答記述子の pathPattern が要求パスと一致していることを確認してください。それ以外の場合、RestKit はエラー応答記述子 (定義されている場合) を使用し、別のステータス コードの応答を期待します。

于 2014-06-27T13:53:49.610 に答える