IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Parser une réponse SOAP


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 3
    Par défaut Parser une réponse SOAP
    Bonjour,

    Dans le carde de mon projet fin d’étude je travaille sur une application ANDROID ou j'utilise plusieurs webservice de type SOAP , j'arrive à récupérer la réponse mais j'arrive pas à parsser la réponse ce qui me ralentie énormément , dans ma dernière tentative j'ai utiliser le tuto Android et les WebServices SOAP
    par Michel Dirix (http://michel-dirix.developpez.com/) mais je crois qu'il existe un problème au niveau de la méthode de parrsing

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    public class AppelService {
    private static final String NAMESPACE = "http://mon-site-web.fr";
    private static final String URL = "http://mon-exemple-web-services/wsdl.WSDL";
    private static final String SOAP_ACTION = "getMeteo";
    private static final String METHOD_NAME = "getMeteo";
    private String getMeteo(String ville) {
    String meteo = null;
    try {
    SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
    request.addProperty("ville", ville);
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
    envelope.setOutputSoapObject(request);
    AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport(URL);
    androidHttpTransport.call(SOAP_ACTION, envelope);
    SoapObject objetSOAP = (SoapObject)envelope.getResponse();
    meteo = this.parserObjet(objetSOAP);
    } catch (Exception e) {
    Log.e("getMeteo", "", e);
    }
    }
    private String parserObjet(SoapObject objet) {
    SoapObject meteoObjet = (SoapObject)positionSoap.getProperty("meteo");
    String meteo = meteoObjet.getProperty("temps").toString();
    return meteo;
    }
    En effet le problème est au niveau de positionSoap !!!!

    Merci.

  2. #2
    Rédacteur
    Avatar de Viish
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2009
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 427
    Par défaut
    Bonjour,

    Si ton but est juste de récupérer une chaine de caractères, pourquoi faire que ton service retourne un objet complexe ?
    Tu pourrai alors simplifier ton code à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    public class AppelService {
    private static final String NAMESPACE = "http://mon-site-web.fr";
    private static final String URL = "http://mon-exemple-web-services/wsdl.WSDL";
    private static final String SOAP_ACTION = "getMeteo";
    private static final String METHOD_NAME = "getMeteo";
    private String getMeteo(String ville) {
    String meteo = null;
    try {
    SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
    request.addProperty("ville", ville);
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
    envelope.setOutputSoapObject(request);
    AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport(URL);
    androidHttpTransport.call(SOAP_ACTION, envelope);
    meteo = envelope.getResponse().toString();
    } catch (Exception e) {
    Log.e("getMeteo", "", e);
    }
    }
    Tu peux également t'appuyer de ce billet : Appel d’un Webservice depuis Android avec KSoap

    PS : SOAP_ACTION = NAMESPACE + METHOD_NAME !
    De plus, pourquoi tu donnes le lien vers ton VSDL dans l'URL ? Ca devrait être le chemin vers ton fichier .asmx (ou autre suivant la techno).

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 3
    Par défaut
    Merci pour votre réponse mais mon problème c'est pas de récupérer la réponse SOAP , en effet mon web service retourne un type complexe par exemple

    [questionnaire{nom_questionnaire=QuestionnaireA1; }, questionnaire{nom_questionnaire=QuestionnaireA2; }]

    donc je cherche à extraire les valeurs de nom_questionnaire (QuestionnaireA1,QuestionnaireA2)

Discussions similaires

  1. Parser une réponse SOAP complexe
    Par ibrahimCA dans le forum Android
    Réponses: 0
    Dernier message: 13/08/2013, 15h41
  2. [XML] Parser un shema XML provenant d'une réponse SOAP
    Par acidline dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 05/05/2010, 11h40
  3. [ORBEON]Parser une réponse SOAP
    Par DonKnacki dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 03/05/2010, 09h24
  4. [Web Service] Parser une réponse SOAP ARRAY
    Par vanmouniren dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 04/02/2010, 13h46
  5. Réponses: 13
    Dernier message: 31/10/2007, 15h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo