In diesem Artikel will ich ein Beispiel geben wie man einen einfachen Web-Request abschickt um eine Antwort von einem Webserver zu erhalten. Dies kann man nutzen um ein Skript auf einem Webserver aufzurufen welches einem gewissen Informationen (als Text oder HTML) zurückgibt. Die Info wird dann als String gespeichert:
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES; NSInteger testParameter = 10; NSString *urlString = [NSString stringWithFormat:@"http://www.testdomain.local/index.php?t=%i", testParameter]; NSURL *url = [NSURL URLWithString:urlString]; NSString *antwort = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil]; // Hier irgendetwas mit der Antwort machen [antwort release]; [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
Die nun folgende Methode ist etwas fortgeschrittener. Mit dieser Methode kann man Anfragen an einen Server senden und mittels POST auch Werte übertragen. Die Methode ist ähnlich wie wenn man in einer HTML-Seite das form-Tag benutzt um Formular-Daten an ein Skript zu übertragen. Hier die Lösung in Objective-C:
// Netzwerk-Aktivitäts-Indikator setzen [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; // URL erstellen NSString *urlString = [NSString stringWithString:@"http://www.testdomain.local/upload.php"]; NSURL *url = [NSURL urlWithString:urlString]; // URL-Request-Objekt erstellen NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; [request setURL:url]; [request setHTTPMethod:@"POST"]; // Hier wird ein NSMutableData-Objekt erstellt welches die POST-Werte aufnimmt NSMutableData *body = [NSMutableData data]; NSString *postWerte = @"seite=1&name=Sven Buchberger&test=0"; [body appendData:[postWerte dataUsingEncoding:NSUTF8StringEncoding]]; // Die POST-Werte dem Request-Objekt übergeben [request setHTTPBody:body]; [leistungWerte release]; // Abfrage ans Web senden und Rückgabe in Variable speichern NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
Pingback: HTTP-Request mit iOS | dasnov.de