Tutorial per l’uso di HTTP POST e GET su iPhone in Objective-C

Ho scaricato la demo di Apple per l’utilizzo di HTTP POST e GET (la loro app di esempio ha una tabbar con parti diverse) e il codice è così confuso!

Qualcuno potrebbe darmi qualche codice di esempio o un link ad alcuni tutorial su di esso? 🙂

Grazie!

La spiegazione dettagliata di Matt Long è particolarmente buona: http://www.cimgf.com/2010/02/12/accessing-the-cloud-from-cocoa-touch/

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://www.cimgf.com/testpost.php"]];  [request setHTTPMethod:@"POST"]; [request setValue:@"text/xml" forHTTPHeaderField:@"Content-type"];  NSString *xmlString = @"Item 1Item 2";  [request setValue:[NSString stringWithFormat:@"%d", [xmlString length]] forHTTPHeaderField:@"Content-length"];  [request setHTTPBody:[xmlString dataUsingEncoding:NSUTF8StringEncoding]];  [[NSURLConnection alloc] initWithRequest:request delegate:self]; 

questo è un modo semplice per usare GET:

  NSURL *url = [NSURL URLWithString:@"http://www.32133.com/test?name=xx"]; NSData *data = [NSData dataWithContentsOfURL:url]; NSString *ret = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; NSLog(@"ret=%@", ret); 

potresti anche voler controllare questo esempio

 ASIFormDataRequest *request = [[[ASIFormDataRequest alloc] initWithURL:url] autorelease]; [request setPostValue:@"Ben" forKey:@"first_name"]; [request setPostValue:@"Copsey" forKey:@"last_name"]; [request setFile:@"/Users/ben/Desktop/ben.jpg" forKey:@"photo"]; 

Puoi trovare maggiori dettagli qui: http://www.redcodelabs.com/2009/08/objective-c-http-post-get-data/

Esistono molti modi per implementare la richiesta HTTP nell’objective-c, la libreria CFNetwork è progettata per questo scopo, ma il modo più semplice per sviluppare la richiesta http è usare NSURLConnection .

Ecco un esempio:

 NSURLConnection *cmdConn = [[[NSURLConnection alloc] initWithRequest:req delegate:self startImmediately:YES] autorelease]; 

riceverai la risposta in didreceiveResponse: e didreceiveData: delegati.

spero che questo ti aiuterà, se vuoi inviare un modulo:

 NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: [NSURL URLWithString:@"http://www.32133.com/test"]]; [request setHTTPMethod:@"POST"]; NSString *postString = @"name=ivybridge&description=This%20is%20desp."; [request setValue:[NSString stringWithFormat:@"%d", [postString length]] forHTTPHeaderField:@"Content-length"]; [request setHTTPBody:[postString dataUsingEncoding:NSUTF8StringEncoding]]; [[NSURLConnection alloc] initWithRequest:request delegate:self];