2010-12-02 6 views

Antwort

15

Es hängt davon ab, auf welche Weise Sie Daten an den Webserver senden möchten. Wenn Sie nur die HTTP-POST-Methode verwenden möchten, gibt es (mindestens) zwei Optionen. Sie können eine synchrone oder eine asynchrone NSURLRequest verwenden. Wenn Sie nur Daten posten möchten und nicht auf eine Antwort vom Server warten müssen, empfehle ich dringend die asynchrone, da sie die Benutzeroberfläche nicht blockiert. I.e. Es läuft "im Hintergrund" und der Benutzer kann weiter mit Ihrer App arbeiten. Asynchrone Anfragen verwenden die Delegierung, um der App mitzuteilen, dass eine Anfrage gesendet, storniert, abgeschlossen wurde usw. Sie können die Antwort auch bei Bedarf über Delegate-Methoden abrufen. Hier

ist ein Beispiel für eine asynchrone HTTP-POST-Anfrage:

// 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]; 

Bitte beachten Sie die NSURLConnection Class Reference Einzelheiten zu den Delegatmethoden.

Sie können auch eine synchrone Anforderung senden, nachdem die Anfrage zu erzeugen:

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

Wenn Sie eine NSURLResponse ** als Rückkehr Antwort passieren, werden Sie feststellen, die Antwort des Servers in dem Objekt, das Zeiger verweist. Beachten Sie, dass die Benutzeroberfläche blockiert wird, während die synchrone Anforderung verarbeitet wird.

Verwandte Themen