2010-01-09 4 views
2

j'ai une page php qui se connecte à une base de données et récupère les données à partir d'une table donnée un paramètre GET, supposons que l'on récupérer une liste de chemises donné une couleur:extraction de données de l'URL dans l'iphone

select * from chemises où color = $ _GET [couleur;

Je veux former l'iphone pour faire une demande à cette page, (envoi de ce paramètre get) et récupérer ces données pour l'utiliser dans mon application.

Comment est-ce que je ferais cela?

Merci!

Répondre

2

La récupération des données d'une URL peut être effectuée à l'aide de NSURLConnection. Vous fournissez cette classe NSURLRequest et il va essayer d'aller chercher les données en arrière-plan. En utilisant les méthodes déléguées, vous pouvez alors «répondre» aux échecs ou au succès.

Vous pouvez créer le NSURLRequest comme ceci:

//color is your color object 
NSString *url = [NSString stringWithFormat:@"http://www.yoursite.com/yourpage.php?color=%@",color]; 
NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]; 

(More information and an example)

1

La façon la plus simple serait d'utiliser

NSString *url = [NSString stringWithFormat:@"http://www.yoursite.com/yourpage.php?color=%@",color]; 
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:url]]; 

car avec le NSURLRequest que vous avez à faire un peu plus magie pour obtenir les données réelles.

Si vous voulez un NSString de NSData, utilisez

NSString *response = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 
// ... 
[response release]; // do this somewhere or you'll have a mem-leak! 
+0

Il est vrai que c'est la façon la plus simple. L'inconvénient est qu'il s'exécute de manière synchrone et bloque le fil entier et probablement l'interface graphique. – Rengers

Questions connexes