J’ai téléchargé la démo d’Apple pour utiliser HTTP POST et GET (leur exemple d’application a un tabbar avec différentes parties) et le code est tellement déroutant!
Quelqu’un pourrait-il me donner un exemple de code ou un lien vers certains tutoriels à ce sujet? 🙂
Merci!
Cette solution de Matt Long est particulièrement utile: http://www.cimgf.com/2010/02/12/accessing-the-cloud-from-cocoa-touch/
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithSsortingng:@"http://www.cimgf.com/testpost.php"]]; [request setHTTPMethod:@"POST"]; [request setValue:@"text/xml" forHTTPHeaderField:@"Content-type"]; NSSsortingng *xmlSsortingng = @"- Item 1
- Item 2
"; [request setValue:[NSSsortingng ssortingngWithFormat:@"%d", [xmlSsortingng length]] forHTTPHeaderField:@"Content-length"]; [request setHTTPBody:[xmlSsortingng dataUsingEncoding:NSUTF8SsortingngEncoding]]; [[NSURLConnection alloc] initWithRequest:request delegate:self];
c’est un moyen simple d’utiliser GET:
NSURL *url = [NSURL URLWithSsortingng:@"http://www.32133.com/test?name=xx"]; NSData *data = [NSData dataWithContentsOfURL:url]; NSSsortingng *ret = [[NSSsortingng alloc] initWithData:data encoding:NSUTF8SsortingngEncoding]; NSLog(@"ret=%@", ret);
vous pouvez également vouloir vérifier cet échantillon
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"];
Vous pouvez trouver plus de détails ici: http://www.redcodelabs.com/2009/08/objective-c-http-post-get-data/
Il existe plusieurs manières d’implémenter la requête HTTP dans CFNetwork
-C, la bibliothèque CFNetwork
est conçue à cette fin, mais le moyen le plus simple de développer une requête HTTP est d’utiliser NSURLConnection
.
Voici un exemple:
NSURLConnection *cmdConn = [[[NSURLConnection alloc] initWithRequest:req delegate:self startImmediately:YES] autorelease];
vous recevrez la réponse dans didreceiveResponse:
et didreceiveData:
delegates.
J’espère que cela vous aidera, si vous souhaitez poster un formulaire:
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: [NSURL URLWithSsortingng:@"http://www.32133.com/test"]]; [request setHTTPMethod:@"POST"]; NSSsortingng *postSsortingng = @"name=ivybridge&description=This%20is%20desp."; [request setValue:[NSSsortingng ssortingngWithFormat:@"%d", [postSsortingng length]] forHTTPHeaderField:@"Content-length"]; [request setHTTPBody:[postSsortingng dataUsingEncoding:NSUTF8SsortingngEncoding]]; [[NSURLConnection alloc] initWithRequest:request delegate:self];