RestKit:在请求失败时获取HTTP状态码

17
我在iOS应用中使用RestKit,并且需要对某些HTTP错误代码进行特殊处理。如何在request:didFailLoadWithError:内部检查响应的HTTP状态码?在NSErroruserInfo字典中是否有相关条目?我在RKRequestDelegate文档中没有找到任何信息。
这里是代理方法的接口:
- (void)request:(RKRequest *)request didFailLoadWithError:(NSError *)error
3个回答

52

针对正在使用新版本RESTkit和objectManager的用户,您可以从RKObjectRequestOperation中获取状态码:

operation.HTTPRequestOperation.response.statusCode


3
原来didFailLoadWithError:方法不会在HTTP错误时被调用。但是request:didLoadResponse:方法仍然会在HTTP错误时被调用,因此响应(包括状态码)仍然可以获得。

1

RKResponse 上的 statusCode 属性对我很有用:

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

}

我只是使用RKClient,所以我通过RKRequestDelegate而不是ObjectManagerDelegate得到通知。 RKRequestDelegate提供的所有错误都是RKRequest和NSError。 - pepsi
RKRequest在0.10.3版本中有一个response属性。 - Jon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接