RÉCUPÉRER UN TABLEAU D'UNE MÉTHODE DISTANTE AVEC KSOAP2

leshafid Messages postés 6 Date d'inscription samedi 25 octobre 2008 Statut Membre Dernière intervention 25 avril 2010 - 25 avril 2010 à 12:19
nacrac Messages postés 2 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 10 avril 2012 - 10 avril 2012 à 20:04
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/51557-recuperer-un-tableau-d-une-methode-distante-avec-ksoap2

nacrac Messages postés 2 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 10 avril 2012
10 avril 2012 à 20:04
j'ai oublie de dire que je travaille sur android !
nacrac Messages postés 2 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 10 avril 2012
10 avril 2012 à 19:59
bonjour tout le monde... j'ai beaucoup cherché sur internet sur la façon dont je peux connecter mon phone avec une base de données distant via wifi mais j'ai rien trouvé..
je me demande s'il ya quelqu'un qui va m'aider !!
et merci d'avance
mn @ est : nacrac123@ymail.com
dark_naruto25 Messages postés 127 Date d'inscription mardi 23 août 2005 Statut Membre Dernière intervention 9 mai 2011
1 juil. 2010 à 14:10
Ma méthode me retournant un tableau de chaîne, je récupère les valeurs en faisant un toString() sur le retour de getProperty(). Ca fait un peu "sale" comme méthode. De plus, j'ai l'impression que getProperty() ne retourne pas tout le temps le même objet (alors que ce ne sont que des chaînes).
Par ailleurs, une valeur de retour vide n'a pas l'air d'être pris en compte. Le toString() me renvoi "anyType{}". Comme tu peux faire pour le gérer comme il se doit ?
SoftDeath Messages postés 20 Date d'inscription samedi 9 décembre 2000 Statut Membre Dernière intervention 13 novembre 2010
24 juin 2010 à 11:41
getResponse ne renvoi qu'une seule valeur comme : 5, -2, "chaine". C'est bodyIn qui te permet de parcourir toute l'enveloppe SOAP ;)
dark_naruto25 Messages postés 127 Date d'inscription mardi 23 août 2005 Statut Membre Dernière intervention 9 mai 2011
24 juin 2010 à 11:07
OK ! Je commence à comprendre. Pour mon tableau de chaînes j'ai fait comme ça :
SoapObject result = envelope.bodyIn // J'ai un problème avec le getResponse(), le programme se fige
// result doit correspondre à mon tableau de chaînes
result.getPropertyCount() // me donne la taille du tableau de chaînes
result.getProperty(i) // pour récupérer la chaîne i dans le tableau

Si jamais tu as une idée de pourquoi getResponse() fige, je suis preneur pour la solution !
SoftDeath Messages postés 20 Date d'inscription samedi 9 décembre 2000 Statut Membre Dernière intervention 13 novembre 2010
23 juin 2010 à 13:48
getProperty(i) renvoi un object. Si des fils sont présent, tu devras caster avec SoapObject pour parcourir l'arbre.
dark_naruto25 Messages postés 127 Date d'inscription mardi 23 août 2005 Statut Membre Dernière intervention 9 mai 2011
23 juin 2010 à 12:28
Ton exemple est très simple et clair ! Il m'aide beaucoup sur la prise en main kSoap.
Le hic, étant donné l'aspect générique de ta solution, je ne saisi pas trop la valeur de retour d'un getProperty(i) ?!
Pour être plus précis, je fais appel à une méthode qui renvoi un String[]. Dans ce cas là, quand est-il du type de retour de getProperty() ? Est-ce un String[] ? ou est-ce que chaque "property" fait référence à un String du tableau ?
SoftDeath Messages postés 20 Date d'inscription samedi 9 décembre 2000 Statut Membre Dernière intervention 13 novembre 2010
25 avril 2010 à 20:34
Cette solution je l'ai découverte seul, et je ne suis pas payé sur ce forum ;) . Ce que tu cherches est dans la méthode resultatRequeteSOAPVectorObject, à toi de voir comment l'exploiter.
leshafid Messages postés 6 Date d'inscription samedi 25 octobre 2008 Statut Membre Dernière intervention 25 avril 2010
25 avril 2010 à 12:57
bein c'est la méthode resultatRequeteSOAPTabObject()
ici
this.retour = (SoapObject) this.envelope.bodyIn;

if(this.retour != null){
nbr = retour.getPropertyCount();
retourTab = new Object[nbr];
for(int i=0; i<nbr; i++){
retourTab[i] = retour.getProperty(i);
}
}

tu as traité que les lignes (nbr c'est les colonnes du tableau envoyés par le serveur) mais le probleme c'est si on aura plusieur lignes ...c'est ce que je vois :)
SoftDeath Messages postés 20 Date d'inscription samedi 9 décembre 2000 Statut Membre Dernière intervention 13 novembre 2010
25 avril 2010 à 12:47
Salem,
Je t'ai rajouté la méthode ;)
Cordialement.
leshafid Messages postés 6 Date d'inscription samedi 25 octobre 2008 Statut Membre Dernière intervention 25 avril 2010
25 avril 2010 à 12:33
Re
ce que je cherche c'est comment Récupérer un tableau à plusieur valeur (comme une matrice) !!
leshafid Messages postés 6 Date d'inscription samedi 25 octobre 2008 Statut Membre Dernière intervention 25 avril 2010
25 avril 2010 à 12:19
merci cher ami j'ai beaucoup cherché cette Méthode "on va dire" , actuellement je développe une application J2ME (avec web service)
mon skype :leshafid
email: lesjafid@yahoo.fr
si cela t'arrange biensur ;) @+