アプリで 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 つの要求のみが送信されていることを示しています。