C'est une question très commune posée à nouveau et encore sur le débordement de la pile et j'ai lu tellement de réponses à ce sujet, mais je suis toujours peu confus.
Je dois appeler les webservices de l'iPhone SDK. P>
Voici mes questions: P>
Je ne suis pas clair de ce qu'est la réponse du savon ou du rejet renvoyé.est quelque chose de spécifique que si la réponse est XML, nous devrions utiliser le repos et si JSON, nous devrions utiliser du savon? P> LI>
Quel est le rôle d'Asihttp avec le savon et le repos? p> li>
si je reçois une réponse XML comme p> li> ol>
<oproduct> <iid>113133791</iid> <icategoryid>270</icategoryid> <imerchantid>1547</imerchantid> <iadult>0</iadult> <sname>The Ashes / 1st Test - England v Australia - Day 1</sname> <sawdeeplink>http://www.acbcd.com/pclick.php?p=113133791&a=111402&m=1547&platform=cs</sawdeeplink> <sawthumburl>http://images.abcdd.com/thumb/1547/113133791.jpg</sawthumburl> <fprice>69.99</fprice> </oproduct>
3 Réponses :
1) Les réponses du savon doivent être XML et renvoyer d'autres formats dont vous avez besoin pour les intégrer dans la réponse XML (inefficace) ou utiliser des pièces jointes de savon (difficiles). Les réponses de savon sont contenues dans une étiquette d'enveloppe SOAP, et il existe généralement une WSDL associée. Si le XML que vous montrez est tout ce que vous obtenez, il peut s'agir d'un service de savon. Je vois des liens dans le XML, donc c'est un bon signe qu'ils se retiennent. P>
2) Je n'ai pas entendu parler d'Asihttp. Un rapide Google, et cela ressemble à sa bibliothèque tierce qui enveloppe les interfaces HTTP dans iOS. On dirait que vous utiliseriez cela pour vous aider à faire les demandes HTTP, bien que je suggère que cela pourrait ne pas être nécessaire; Vous devez évaluer directement à l'aide des bibliothèques HTTP. P>
3) Vous devez l'analyser en quelque sorte. Vous pouvez le faire à la main, mais c'est généralement une très mauvaise idée. XML peut venir sous de nombreuses formes et avoir toujours la même signification, et si vous ne prenez pas en charge toutes les formes, votre demande pourrait se casser à l'avenir si le fournisseur de services Web a commencé à formater leur XML différemment, même si sa sémantique était la même. Vous utiliseriez une API XML pour lire le XML. L'API DOM le lira dans une forme d'arbre pour vous et vous pouvez utiliser XPath pour extraire des informations hors de l'arborescence. P>
Quelle est l'autre option pour lire XML non à la main? Est-ce que c'est touchxml plutôt que nsxml? Parce que j'ai la pratique d'utiliser NSXML et d'analyser à la main à l'aide d'un analyseur (vide): (nsxmlParser *) Didstartelement: (NSString *) Nomspaceuri: (Nstring *) Nomspaceuri qualifiéeName: (Nstring *) Attributs QName :( Nsdictionary *) atributée {si ([[eSequaltostring ElementName: @ "nofObjectsDétecteté"]) {nofobjetcsarray = [NsmutableArraRay Alloc] InitiplawithCapacité: 0]; elynenstr = ellementName; }} code> méthode
Je ne connais pas avec Nsxml, mais il semble que cela crée des structures d'arbres pour vous hors du XML, donc je ne l'appellerais pas, "analysant la main". Si vous connaissez bien cela alors allez-y.
Ce que je comprends "analysant à la main", je connais déjà la structure de l'arborescence comme en question et je pars chaque balise un par un en utilisant des méthodes ci-dessus dans mon précédent commentaire précédent.
Typiquement analysant la main fait référence à l'utilisation de méthodes autres qu'un processeur XML dédié. Par exemple, la manipulation de chaîne ou des expressions régulières.
OK, vous avez donc quelques questions différentes ici: P>
Le repos est un moyen de accéder à em> le service Web. Le savon est une solution alternative d'accéder au service Web. Le repos utilise la chaîne de requête ou le format d'URL alors que le savon utilise XML. JSON et XML sont deux façons différentes d'envoyer des données de retour. Le savon et le XML sont généralement associés les uns aux autres. Pour les applications mobiles, REST / JSON est généralement la voie à suivre. Plus facile à mettre en œuvre et à maintenir, bien plus télégraphique, etc. p> li>
ASIHTTP, comme Bill Notes, est une enveloppe. Il y a d'autres choix qui font des choses similaires en fonction de ce dont vous avez besoin. Si vous utilisez repos / json, alors Si votre service SOAP dispose d'une WSDL disponible disponible, vous pouvez utiliser WSDL2OBJC pour construire automatiquement le code de votre analyse et votre aller. S'il s'agit d'un service JSON ou de NO WSDL est disponible, je vous recommanderais d'utiliser pour (id jSPELement in reponse) {
Self.ProperTya = [JSONELYMENT VALUEFORKEY: @ "keaa"];
Self.Propertyb = [JSONELYMENT VALUEFORKEKEY: @ "Keyb"];
} p> li>
ol>
espère que cela aide! p> nsurlconnection code> +
SBJSON code> pourrait faire le tour, je l'aime personnellement. P> Li>
SBJSON code> et simplement analyser de la manière suivante: p>
SOAP - "Protocole d'accès d'objet simple" fort> p>
SOAP est une méthode de transfert de messages ou de petites quantités d'informations, sur Internet. Les messages de savon sont formatés dans XML et sont généralement envoyés à l'aide de HTTP (protocole de transfert hypertexte). P>
SOAP a une standard comment un message doit être envoyé. P>
Chaque service Web SOAP peut être défini avec une langue de définition du service Web WSDL (langue de service Web) qui est un type de schéma pour le savon XML transféré. P>
Il existe de nombreux outils disponibles pour convertir WSDL (votre définition de service Web) au code natif. P>
L'un des outils disponibles pour l'OBJC est sudz-c ( http://sudzc.com/ ) strong> qui convertissez le WDSL de n'importe quel service WebService vers le code OBJC pour accéder au service Web. P>
Le repos est un moyen simple d'envoyer et de recevoir des données entre client et serveur et ne disposant pas de normes de grande taille, vous pouvez envoyer et recevoir des données comme JSON, XML ou même un texte. Sa lumière pondérée par rapport au savon. P>
Pour gérer le repos dans iOS Il existe de nombreux outils disponibles, je recommanderais Restkit http://restkit.org/ < / a> strong>, pour la manipulation de XML et JSON. P>
Je vous suggérerais d'aller avec le repos pour le développement mobile, depuis son poids léger (exemple simple, les gens me corrigent si je me trompe) p>
p>
Dans un monde parfait, toutes les réponses seraient comme celle-ci.
C'est la meilleure réponse que j'ai vue jamais sur la pile
@Nakkeeran J'ai une grande quantité de données et de sécurité est une préoccupation, alors que dois-je choisir?
@Nakkeeran vraiment une bonne réponse. J'avais déraciné pour ça. Effacé mes concepts de savon et de repos. Merci