2009-05-27 7 views
28

Je dois vérifier et évaluer les codes d'état HTTP dans mon application iPhone. J'ai un objet NSURLRequest et un NSURLConnection qui sucessfully (je pense) connecter au site:Récupérer les codes d'état HTTPResponse/HTTPRequest iPhone SDK?

// create the request 
NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.apple.com/"] 
         cachePolicy:NSURLRequestUseProtocolCachePolicy 
        timeoutInterval:60.0]; 
// create the connection with the request 
// and start loading the data 
NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self]; 
if (theConnection) { 
    // Create the NSMutableData that will hold 
    // the received data 
    // receivedData is declared as a method instance elsewhere 
    receivedData=[[NSMutableData data] retain]; 
} else { 
    // inform the user that the download could not be made 
} 

Je suis ici ce code: http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/URLLoadingSystem/Tasks/UsingNSURLConnection.html

mais il n'a pas (pour autant que je peux voir) rien à propos de l'accès aux codes d'état HTTP.

Quelqu'un at-il une idée de comment établir une connexion à un site, puis vérifier les codes d'état HTTP de cette connexion?

Merci d'avance!

Répondre

76

Voici comment je le fais:

#pragma mark - 
    #pragma mark NSURLConnection Delegate Methods 
    - (void)connection:(NSURLConnection*)connection didReceiveResponse:(NSURLResponse*)response { 
     NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response; 
     int responseStatusCode = [httpResponse statusCode]; 
    } 

Mais j'utilise une NSURLConnection asynchrone, cela ne peut vous aider. Mais j'espère que ça le fera quand même!

+0

Cela a accompli ce dont j'avais besoin. Le seul problème est que si l'URL/IP Addy n'existe pas, aucune réponse n'est reçue, donc l'application reste là pour toujours. Je suis actuellement à la recherche d'un moyen de résoudre ce problème ... toute suggestion serait appréciée ... – cmcculloh

+3

Regardez le code Reachabilty d'Apple. N'utilisez que la méthode de notification (non activée dans le code par défaut, voir les commentaires dans la méthode init) et définissez toujours l'hôte que vous souhaitez vérifier. http://stackoverflow.com/questions/477852/checking-for-internet-connectivity-in-objective-c –