我想讓我的應用程序處理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