2009-04-01 8 views
3

Je mis en œuvre le code suivant:d'extraire des données de cacao http obtenir la demande

NSURL *url = [ NSURL URLWithString:[ NSString stringWithFormat: @"http://www.google.com/search?q=%@", query ] ]; 
NSURLRequest *request = [ NSURLRequest requestWithURL: url ]; 

Je veux extraire le corps de ce que je reçois de retour de l'URL ci-dessus. Je tentais:

NSData *data = [request HTTPBody]; 

Les données variables ne renvoie pas de données? Est-ce que je vais extraire les données de la demande de la bonne façon?

Merci! NSURLRequest définit simplement une demande - il ne fait rien par lui-même.

Répondre

6

Si vous essayez simplement d'obtenir une page Web, vous pouvez l'utiliser.

NSURL *url = [ NSURL URLWithString: [ NSString stringWithFormat: @"http://www.google.com"] ]; 
NSString *test = [NSString stringWithContentsOfURL:url]; 

Si vous voulez vraiment convertir les données de NSData vous pouvez utiliser ceci:

NSString *myString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 
+0

Bien qu'il ne soit pas techniquement faux en soi, ce code est probablement mal conseillé. Pour une requête HTTP, vous voulez certainement utiliser l'API asynchrone disponible via NSURLConnection. –

3

Pour réellement faire une demande, vous devez donner la demande à un NSURLConnection.

En outre, comme indiqué dans documentation, le HTTPBody est des données envoyées avec la demande, pas le corps de la réponse.

1

Il y a un article sur www.eigo.co.uk qui montre exactement comment faire la demande et obtenir la réponse dans une variable de chaîne, mais le morceau de code que vous avez besoin est ...

NSString * strResult = [[NSString alloc] initWithData:oResponseData encoding:NSUTF8StringEncoding]; 

Consultez l'article ici http://www.eigo.co.uk/iPhone-Submitting-HTTP-Requests.aspx