NSURLConnection - wyłącza mechanizm odpowiedzi na wyzwanie uwierzytelnienia

SYTUACJA

Korzystanie z AFNetworking (NSURLConnection) w celu uzyskania dostępu do interfejsu API mojego serweraInterfejs API wymaga uwierzytelniania podstawowego z tokenem jako nazwą użytkownikaInterfejs API zwraca HTTP 401, gdy token jest nieprawidłowyNagłówki podstawowego uwierzytelniania ustawiam przed jakimkolwiek żądaniem

Jeśli zwróci 401, ponawiam próbę w ten sposób:

AFHTTPRequestOperation *requestOperation = [MyHTTPClient.sharedClient HTTPRequestOperationWithRequest:request success:^(AFHTTPRequestOperation *operation, id responseObject) {
    processSuccessBlock(operation, responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    processFailureBlock(operation, error);

    if (operation.response.statusCode == 401)
        [MyHTTPClient.sharedClient refreshTokenAndRetryOperation:operation success:processSuccessBlock failure:processFailureBlock];
}];

PROBLEM

Gdy serwer zwraca HTTP 401 z wyzwaniem Basic Authentication, AFNetworking / NSURLConnectiondwukrotnie wysyła identyczne żądanie (wstępne żądanie, a następnie odpowiedź na wyzwanie uwierzytelnienia)Ale z powodu powyższego kodu, ja sam radzę sobie z HTTP 401,jest to całkowicie niepotrzebne i chcę, aby automatycznie przestał odpowiadać na wyzwanie uwierzytelniania

CO wypróbowałem

OdpowiadamcancelAuthenticationChallenge: dowillSendRequestForAuthenticationChallenge: przerywa drugie wywołanie, ale daje kod błędu -1012 (NSURLErrorUserCancelledAuthentication) zamiast 401 i maskuje prawdziwą odpowiedź

Jak wyłączyć mechanizm odpowiedzi na wyzwanie uwierzytelniania, aby uzyskać odpowiedź serwerów bez wywołania go dwukrotnie?

questionAnswers(2)

yourAnswerToTheQuestion