Web Services avec WSMakeStubs
sync
Membre
Bonjour,
Je suis actuellement sur un essai de projet d'interaction entre un webservice et une petite application en cocoa. J'utilise l'utilitaire fourni par apple dans son répertoire /Developer/Tools nommé WSMakeStubs pour générer 4 fichiers permettant de créer.
Quelqu'un aurait-il déjà joué avec cet utilitaire et surtout aurait-il intégré les fichiers générés dans son propre projet ?
Je n'arrive pas à utiliser les fichiers générés par WSMakeStubs.
Je les intègre dans la petite app, j'ajoute le framework CoreService, ensuite je place sur mon nib un bouton permettant d'exécuter une action. Et là je suis bloqué dans mon action du bouton j'aimerai bien appeler mon webservice et récupèrer les données pour commencer juste en affichant le NSDictionnary dans un log.
Quelqu'un aurait-il l'âme assez généreuse pour donner une petite explication???
<br />
Merci d'avance et bonne journée
Je suis actuellement sur un essai de projet d'interaction entre un webservice et une petite application en cocoa. J'utilise l'utilitaire fourni par apple dans son répertoire /Developer/Tools nommé WSMakeStubs pour générer 4 fichiers permettant de créer.
Quelqu'un aurait-il déjà joué avec cet utilitaire et surtout aurait-il intégré les fichiers générés dans son propre projet ?
Je n'arrive pas à utiliser les fichiers générés par WSMakeStubs.
Je les intègre dans la petite app, j'ajoute le framework CoreService, ensuite je place sur mon nib un bouton permettant d'exécuter une action. Et là je suis bloqué dans mon action du bouton j'aimerai bien appeler mon webservice et récupèrer les données pour commencer juste en affichant le NSDictionnary dans un log.
Quelqu'un aurait-il l'âme assez généreuse pour donner une petite explication???
<br />
Merci d'avance et bonne journée
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Dans l'exemple, le webservice a une une méthode nommée UneMethode. Cette méthode accepte un argument de type chaà®ne et de nom param1 (ici, on passe la chaà®ne "valeur" dans ce paramètre). Un résultat est renvoyé.
A toi de tester et développer cet exemple.
.
Merci beaucoup pour la réponse...
Anthony
Bien sûr (mais ça que ce soit dans un cas comme dans l'autre, quelle que soit ta structure de dictionnaire utilisé pour nourir ta TableView), il faut que tu définisses pour chaque colonne (de ta TableView à 3 colonnes) dans IB les bon identifiers pour tes colonnes, donc respectivement "OutputCodeAdresseTable", "OutputPrenomAdresseTable" et "OutputNomAdresseTable".
Là je t'ai décrit comment faire dans l'éventualité où tu utilises des DataSource et pas les bindings, mais bon le principe est là de toute façon.
PS : Dans ton exemple plus haut j'imagine que tu voulais dire que ce qui est retourné c'est [tt]OutputNomAdresseTable = (Walterys, Walterys)[/tt] et [tt]OutputPrenomAdresseTable = (Henri, David)[/tt] et non pas l'inverse
[EDIT]Arf ben je vois que tu as édité ton post pour enlever ta question de comment inverser l'agencement de ton tableau reçu en résultat, donc ma réponse ne correspond plus à rien [/EDIT]
C'est génial merci beaucoup pour la réponse...
Anthony bientot le week end
Suite de l'épisode sur les WebServices...
Je cherche à faire des tests sur les valeurs retournées pour afficher certaines valeures ou pas mais j'ai un problème d'encodage ????
Dans la partie serveur webservice aucunes valeurs nulles ne sont retournées au client, je les remplace par "essai" (pour l'exemple), et donc j'essai de récupérer ces valeurs en faisant de la sorte:
Dans le log ce qui est retourné:
(Les caractères ne passent pas sur le forum)
Afin d'y utiliser pour un test if mais true n'est jamais retrourné genre si je fais
if (string == @essai)
Toujours sur false comme string ne vaud pas @essai il doit être encodé d'une certaine façon!
Mes questions ne sont jamais très claires mais j'espère que quelqu'un pourra me donner une solution.
Merci déjà pour tout !!!
Bonne journée
Enfin, les 4 derniers log ne servent à rien parce que string est un objet de type NSString* et pas un char* (une chaine de caractères C).
Encore un nouvel épisode dans la série Web Service.
Aujourd'hui, la question que je me pose est comment récupérer des images à travers un Web Service, ça parait un petit peu plus compliqué, étant donné que le serveur qui fournit les webservices encode en base64 les images dans un texte.
Bonne journée
Anthony
Essaye de faire du décodage base64 des données reçues (ça c'est pas méchant) puis d'interpréter cette image comme une image bitmap, ou PNG, ...
(Souvent le MIME-TYPE est précisé il me semble donc tu dois savoir de quel type de format d'image il s'agit, non ?)
J'ai pas de code à te proposer sous la main, mais l'idée est de faire un décodage Base64 (y'a sûrement de quoi faire ça) puis destocker le résultat décodé dans une ImageRep ayant le format adéquat en recopiant les bits décodés...
J'ai trouvé 2 pages intéressantes:
http://www.dribin.org/dave/blog/archives/2006/03/12/base64_cocoa/
et
http://www.cocoadev.com/index.pl?BaseSixtyFour
(avec base exemple)
Suite de feuilleton des webServices...
Le problème est le suivant:
J'exécute une requête à mon web service, la requête me retourne le fichier xml de la réponse avec comme contenu "principal":
<outPictureBlob xsi:type="xsd:base64Binary">
iVBORw0KGgoAAAANSUhEUgAAAGMAAABvCAIAAAB3m+m5AAAABGdBTUEAANkD... etc
C'est donc une image en base64 que j'essaie de récupérer donc je fais un:
NSData *imageData = [imgResult objectForKey:@outPictureBlob];
(imgResult est le dictonnaire retourné suite à la requête au service web)
Et pour continuer j'aimerai convertir le NSData imageData en string afin de le passer dans la méthode de décodage de base64 et de l'insérer à nouveau dans une image.
Le problème c'est que je ne sais pas quel encodage utiliser lors de la conversion du NSData imageData, j'ai essayé ceci:
NSString *photoString = [[NSString alloc] initWithBytes:[mesDatas bytes] length:[mesDatas length] encoding:NSASCIIStringEncoding];
Mais la méthode de décode de base64 n'arrive pas à récupérer l'image quelqu'un connaitrait-il la solution? Je suspecte NSASCIIStringEncoding qui n'est pas le bon type d'encodage.
Merci beaucoup et bonne journée
Anthony
.
>:D :-\\
En effet, pour moi, tu devrais plutôt récupérer un NSString du dictionnaire du résultat...
De toute façon, pour que [NSString alloc] init] renvoie NULL, c'est que ton NSData est tout pourri.
As tu fait un [tt]NSLog(@%@ %@", [imageData className], imageData);[/tt] pour voir ce qu'est/contient l'objet imageData (ou mesDatas, puisque dans l'exemple pas clair, tu utilises ces 2 objets) ?
.
Oui effectivement je devrais plutôt récupérer une string de mon dictonnaire de résultat mais je ne sais pas vraiment comment faire....
J'utilise uniquement imageData.
Ci-joint un log de:
et de:
[Fichier joint supprimé par l'administrateur]
Donc, peut-être point besoin de le démimer !
Essaie directement de faire :
pour voir...
.
Bonne journée