2011-11-21 139 views
16

我在iOS應用程序中使用RestKit,並且需要對某些HTTP錯誤代碼進行特殊處理。如何在request:didFailLoadWithError:內部檢查響應HTTP狀態代碼? userInfo字典中有沒有關於NSError的文章?我在RKRequestDelegate documentation找不到任何東西。RestKit:請求失敗時獲取HTTP狀態代碼

下面是委託方法的接口:上RKResponse作品中,我

- (void)request:(RKRequest *)request didFailLoadWithError:(NSError *)error 

回答

50

對於使用RESTkit和的ObjectManager新版本的人,你可以獲取從RKObjectRequestOperation中的StatusCode:

operation.HTTPRequestOperation.response.statusCode

+0

這是RestKit v0.20中的正確答案 –

1

statusCode屬性:

- (void)objectLoader:(RKObjectLoader*)objectLoader didFailWithError:(NSError*)error 
{ 
    switch ([[objectLoader response] statusCode]) { 
     case 409: 
    ... 

} 
+0

我只是用RKClient,所以我得到通過RKRequestDelegate通知,而不是ObjectManagerDelegate。所有RKRequestDelegate提供的錯誤都是RKRequest和一個NSError。 – pepsi

+0

RKRequest在0.10.3中具有響應屬性。 – Jon

3

事實證明,didFailLoadWithError:不叫了HTTP錯誤。 request:didLoadResponse:方法仍然被稱爲HTTP錯誤,所以響應(以及因此的狀態碼)可用。

相關問題