アプリで HTTP クライアント エラーを処理しようとしています。理想的には、エラーの原因となったリクエストに関係なく、このようなエラーが発生するたびに静的メソッドを実行したいと考えています。
何か間違ったことをしているようです -RKDynamicResponseDescriptorメソッドを呼び出すために a を追加しようとしましたが、呼び出されません。サーバーがエラーで応答するたびに、要求は終了しません (ネットワーク アクティビティ インジケーターは回転し続け、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認証チャレンジを返したときに両方のケースで発生します。にブレークポイントを設定しようとしRKHTTPRequestOperationましたdidReceiveAuthenticationChallengeが、トリガーされません。My Fiddler は、1 つの要求のみが送信されていることを示しています。