Per le richieste post è un po' più complicato.
Mi sono creato questa pagina php:
<html>
<body>
<?php
$param1 = @$_POST["param1"];
$param2 = @$_POST["param2"];
echo "$param1 $param2";
?>
</body>
</html>
Per quanto riguarda il codice per iOS ho creato un Button, premendo il quale si esegue il metodo doReq.
File .h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController <NSURLConnectionDataDelegate> //Bisogna importare questo protocollo per essere informati degli eventi che accadranno durante la richiesta
- (IBAction)doReq:(id)sender;
@end
file .m (ho omesso i metodi autogenerati)
- (IBAction)doReq:(id)sender
{
//Creo url
NSURL* url = [NSURL URLWithString:@"http://localhost/prova.php"];
//Creo richiesta
NSMutableURLRequest* req = [NSMutableURLRequest requestWithURL:url];
//Imposto metodo POST
req.HTTPMethod = @"POST";
//Creo la stringa di coppie parametro-valore
NSString* param = [NSString stringWithFormat:@"param1=%@¶m2=%@", @"value1",@"value2"];
//Imposto il body della richiesta
[req setHTTPBody:[param dataUsingEncoding:NSUTF8StringEncoding]];
//Creo la richiesta
NSURLConnection* conn = [NSURLConnection connectionWithRequest:req delegate:self];
if (!conn) {
NSLog(@"Errore");
}
}
//Questo metodo verrà richiamato ogni volta che saranno ricevuti dei dati
//Questo non significa che verrà richiamato quando avrà ricevuto TUTTI i dati
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
responseBody = [responseBody stringByAppendingString:[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]];
}
// Verrà richiamato quando la richiesta sarà completata, ovvero quando avremo ricevuto tutti i dati
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSLog(@"%@",responseBody);
}
@end
E questo è l'output del simulatore:
2012-06-21 12:28:27.402 POST[902:f803] <html>
<body>
value1 value2</body>
</html>