2010-12-02 36 views

Répondre

15

Cela dépend de la manière dont vous voulez envoyer des données au serveur Web. Si vous voulez juste utiliser la méthode HTTP POST, il y a (au moins) deux options. Vous pouvez utiliser un NSURLRequest synchrone ou asynchrone. Si vous voulez seulement publier des données et que vous n'avez pas besoin d'attendre une réponse du serveur, je recommande fortement le serveur asynchrone, car il ne bloque pas l'interface utilisateur. C'est à dire. il fonctionne "en arrière-plan" et l'utilisateur peut continuer à utiliser (c'est-à-dire interagir avec) votre application. Les demandes asynchrones utilisent la délégation pour indiquer à l'application qu'une demande a été envoyée, annulée, terminée, etc. Vous pouvez également obtenir la réponse via des méthodes de délégation si nécessaire.

Voici un exemple pour une requête HTTP POST asynchrone:

// define your form fields here: 
NSString *content = @"field1=42&field2=Hello"; 

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://www.example.com/form.php"]]; 
[urlRequest setHTTPMethod:@"POST"]; 
[urlRequest setHTTPBody:[content dataUsingEncoding:NSISOLatin1StringEncoding]]; 

// generates an autoreleased NSURLConnection 
[NSURLConnection connectionWithRequest:request delegate:self]; 

S'il vous plaît se référer à la NSURLConnection Class Reference pour plus de détails sur les méthodes de délégués.

Vous pouvez également envoyer une demande synchrone après avoir généré la demande:

[NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 

Si vous passez un NSURLResponse ** comme réponse de retour, vous trouverez la réponse du serveur dans l'objet que les points de pointeur pour. Gardez à l'esprit que l'interface utilisateur bloquera pendant le traitement de la requête synchrone.