Sto facendo una richiesta di url asincrono con il nuovo metodo iOS 5: sendAsynchronousRequest: queue: completionHandler :. Questo utilizza un blocco per gestire la risposta, ma non vengono chiamati i metodi delegati NSURLConnectionDelegate? Non riesco a vedere un modo per impostare il delegato per la classe NSUrlConnection in questa istanza?Gestione di una risposta 401 con sendAsynchronousRequest: queue: completionHandler:
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
NSLog(@"HTTP response code: %i", httpResponse.statusCode);
if (error != nil) {
NSLog(@"There was error with the synchronous request: %@", error.description);
}
}];
La ragione per cui ho bisogno di metodi delegato è perché una delle mie chiamate ottiene una risposta 401, che iOS gestisce in un modo diverso - rinviando l'autenticazione di delegare metodi. Quando arriva una risposta 401 - httpResponse.statusCode è solo "0".
C'è un modo per impedire a iOS di provare a gestire un 401 in modo diverso? In particolare, penso che sia necessario utilizzare il metodo continueWithoutCredentialForAuthenticationChallenge: delegate, ma in questo caso non viene chiamato alcun delegato.
Grazie!
Utilizzare uno dei metodi di collegamento con un delegato, come initWithRequest: delegato: –
Date un'occhiata a questa risposta: http://stackoverflow.com/questions/12828060/authentication-with-nsurlconnection-sendasynchronousrequest-with- completamento a mano –