我想让我的应用程序处理HTTP客户端错误。理想情况下,无论发生何种错误,我都希望运行一个静态方法,而不管造成这种错误的请求。RestKit请求挂在HTTP错误
看来我做错了事 - 我试图添加一个RKDynamicResponseDescriptor
来调用该方法,但它不会被调用。每当我的服务器错误响应,请求无法完成(网络活动指示灯持续纺纱和AFNetworkingOperationDidFinishNotification
永远不会公布。)
我可以通过创建一个新的AFHTTPRequest
请求,这样重现行为:
request = [[RKObjectManager sharedManager].HTTPClient requestWithMethod:@"GET" path:@"events" parameters:nil];
AFHTTPRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request
success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
NSLog(@"%@", JSON);
}
failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
NSLog(@"Request Failed with Error: %@, %@", error, error.userInfo);
}];
既不调用success
也不调用failure
块。如果我将第一行替换为
request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:url]];
块被调用。我如何让RestKit处理HTTP错误响应?
编辑1:显然,在服务器返回带有验证质询的401
这两种情况下会发生这种情况。我曾尝试在didReceiveAuthenticationChallenge
中的RKHTTPRequestOperation
中设置断点,但未触发。 My Fiddler表明只发送一个请求。
您是否报告过此错误?我想我可能会遇到同样的问题。 – RonLugge