iPhone: Comment envoyer une requête HTTP à un service web à l'aide de Xcode
Comment envoyer une requête HTTP à un service web à l'aide Objective-C ? J'ai besoin de récupérer certaines données de ma base MySQL, j'ai donc besoin d'envoyer la demande afin que je puisse récupérer les données.
Modifier, parce que c'est une question populaire et le temps continue à aller sur.
En attendant, Apple a introduit NSJSONSerialization. Venez regarder les docs: https://developer.apple.com/documentation/foundation/jsonserialization
Si vous avez besoin de créer un code pour iOS antérieures à la version 5.0, vous pouvez utiliser le json-framwork comme mentionné ci-dessous.
En outre, les originaux suivants réponse est toujours valable:
Toutefois, la première partie de cet article répond à votre question plus générale sur la façon de recevoir des données à partir d'un serveur web/service:
-(NSString*)stringWithUrl:(NSURL *)url
{NSURLRequest*urlRequest =[NSURLRequest requestWithURL:url
cachePolicy:NSURLRequestReturnCacheDataElseLoad
timeoutInterval:30];//Fetch the JSON responseNSData*urlData;NSURLResponse*response;NSError*error;//Make synchronous request
urlData =[NSURLConnection sendSynchronousRequest:urlRequest
returningResponse:&response
error:&error];//Construct a String around the Data from the responsereturn[[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding];}
C'est un exemple simple d'une requête http et sûrement assez bon pour vos prochaines étapes.
Cette méthode est une URL et retourne les données envoyées par le serveur dans un NSString.
Une fois que cela fonctionne correctement, vous souhaitez éviter que votre application se fige alors que la demande est "en l'air".
Vous pouvez corriger cela par des requêtes asynchrones. Google, la recherche sur stackoverflow vous fournira des liens vers des exemples et des tutoriels à ce sujet. Mais je suggère d'aller à partir d'ici tout d'abord, même si cela peut ne pas être la solution finale.
Connaissez-vous des tutoriels vidéo de cet exemple? Franchement, je ne crois pas en tutoriels vidéo. Ils prennent beaucoup de temps, vous ne pouvez pas couper&coller des échantillons ou des liens, et il est difficile -et encore, de temps à se référer à certaines parties d'entre eux. Désolé, je ne sais pas tout. peut-être Lynda.com?
ASIHTTPRequest a été "abandonné" par son auteur. Je pense que beaucoup de gens sont à l'aide de AFNetworking maintenant... Ou tout simplement utiliser NSURLConnection STHTTPRequest ressemble à une autre bonne alternative. Très léger.
Qui suit est un très célèbre bibliothèque que vous pouvez utiliser pour demander
ASIHTTPRequest
AFNetwork
MFNetwork
Vous pouvez effectuer une recherche dans google, télécharger sur github ou, oui, bien sûr, pourquoi ne pas utiliser Cocoapods. c'est la meilleure chose quand je compare objective-c avec d'autres langues.
ASIHTTPRequest est une grande et simple cadre, donc je seconde les recommandations d'autres postes. Pour être complet, vous devez également savoir que vous pouvez le faire en natif (Objective-C sans un autre cadre. Regardez la documentation d'Apple pour la NSURLConnection et NSURLConnectionRequest classes pour le fond.
Modifier, parce que c'est une question populaire et le temps continue à aller sur.
En attendant, Apple a introduit NSJSONSerialization. Venez regarder les docs: https://developer.apple.com/documentation/foundation/jsonserialization
Si vous avez besoin de créer un code pour iOS antérieures à la version 5.0, vous pouvez utiliser le json-framwork comme mentionné ci-dessous.
En outre, les originaux suivants réponse est toujours valable:
En supposant que vous échangez vos données en JSON, vous pouvez être intéressé par la lecture de ce.
http://iosdevelopertips.com/cocoa/json-framework-for-iphone-part-2.html
Toutefois, la première partie de cet article répond à votre question plus générale sur la façon de recevoir des données à partir d'un serveur web/service:
C'est un exemple simple d'une requête http et sûrement assez bon pour vos prochaines étapes.
Cette méthode est une URL et retourne les données envoyées par le serveur dans un NSString.
Une fois que cela fonctionne correctement, vous souhaitez éviter que votre application se fige alors que la demande est "en l'air".
Vous pouvez corriger cela par des requêtes asynchrones. Google, la recherche sur stackoverflow vous fournira des liens vers des exemples et des tutoriels à ce sujet. Mais je suggère d'aller à partir d'ici tout d'abord, même si cela peut ne pas être la solution finale.
Franchement, je ne crois pas en tutoriels vidéo. Ils prennent beaucoup de temps, vous ne pouvez pas couper&coller des échantillons ou des liens, et il est difficile -et encore, de temps à se référer à certaines parties d'entre eux. Désolé, je ne sais pas tout.
peut-être Lynda.com?
OriginalL'auteur Hermann Klecker
Il existe de nombreuses façons, mais peut-être que le plus simple est d'utiliser un cadre existant, ASIHTTPRequest.
Voir: http://allseeing-i.com/ASIHTTPRequest/
STHTTPRequest ressemble à une autre bonne alternative. Très léger.
OriginalL'auteur picciano
Qui suit est un très célèbre bibliothèque que vous pouvez utiliser pour demander
ASIHTTPRequest
AFNetwork
MFNetwork
Vous pouvez effectuer une recherche dans google, télécharger sur github ou, oui, bien sûr, pourquoi ne pas utiliser Cocoapods. c'est la meilleure chose quand je compare objective-c avec d'autres langues.
Bonne chance
OriginalL'auteur Eugene Nguyen
ASIHTTPRequest est une grande et simple cadre, donc je seconde les recommandations d'autres postes. Pour être complet, vous devez également savoir que vous pouvez le faire en natif (Objective-C sans un autre cadre. Regardez la documentation d'Apple pour la NSURLConnection et NSURLConnectionRequest classes pour le fond.
OriginalL'auteur Tim Dean