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 :

HttpClient et parsing XML avec JDom


Sujet :

Android

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 334
    Points : 218
    Points
    218
    Par défaut HttpClient et parsing XML avec JDom
    Bonjour

    J'ai une page PHP en ligne générant du XML que j'aimerai parser avec JDOM.
    J'utilise le HttpClient d'Apache pour la récupérer, ça marche sans souci.
    Seulement je n'arrive pas à parser le corps de la page.

    Ce code fonctionne en Java, mais sous Android, il me renvoi une StringIndexOutOfBoundsException :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    // requête
    HttpPost req = new HttpPost(URL_TEST_XML);
    // reponse
    HttpResponse response = httpclient.execute(req);
    // parse xml
    SAXBuilder sxb = new SAXBuilder();
    Document document = sxb.build(response.getEntity().getContent());
    Une idée ?

  2. #2
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    Salut,

    As tu regardé le type de réponse que tu obtiens ? La chaine ne serait pas vide ? etc.
    Pense à analyser ton code avec le débugueur pour bien voir ce que tu veux transmettre à ton parseur
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 334
    Points : 218
    Points
    218
    Par défaut
    Salut mon cochon

    Je n'utilise pas le débugger, il va falloir que je me renseigne.
    Enfin ça marche en java et puis j'arrive à afficher le contenu xml dans la sortie Log d'Android qui me donne ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <?xml version="1.0"?>
    <message code="2" text="c bon"/>
    C'est ce que je génère en php.
    Maintenant que j'y pense, c'est peut-être un problème d'encodage ?
    Voici donc le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    HttpResponse response = httpclient.execute(req);
    InputStream flux = response.getEntity().getContent();
    // parse
    SAXBuilder sxb = new SAXBuilder();
    Document document = sxb.build(flux);
    Et le log d'erreur (généré par sxb.build) :

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    ERROR/AndroidRuntime(1144): Uncaught handler: thread main exiting due to uncaught exception
     java.lang.StringIndexOutOfBoundsException
         at java.lang.String.substring(String.java:1571)
         at org.jdom.input.SAXHandler.startElement(SAXHandler.java:568)
         at org.apache.harmony.xml.ExpatParser.startElement(ExpatParser.java:145)
         at org.apache.harmony.xml.ExpatParser.append(Native Method)
         at org.apache.harmony.xml.ExpatParser.parseFragment(ExpatParser.java:506)
         at org.apache.harmony.xml.ExpatParser.parseDocument(ExpatParser.java:467)
         at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:329)
         at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:286)
         at org.jdom.input.SAXBuilder.build(SAXBuilder.java:518)
         at org.jdom.input.SAXBuilder.build(SAXBuilder.java:865)
         at dawadam.Connexion.testDialJDOM(Connexion.java:291)
         at dawadam.MenuComptes.onClick(MenuComptes.java:169)
         at android.view.View.performClick(View.java:2347)
         at android.view.View.onTouchEvent(View.java:4137)
         at android.widget.TextView.onTouchEvent(TextView.java:6555)
         at android.view.View.dispatchTouchEvent(View.java:3675)
         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:923)
         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:923)
         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:923)
         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:923)
         at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1757)
         at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1211)
         at android.app.Activity.dispatchTouchEvent(Activity.java:1987)
         at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1741)
         at android.view.ViewRoot.handleMessage(ViewRoot.java:1819)
         at android.os.Handler.dispatchMessage(Handler.java:99)
         at android.os.Looper.loop(Looper.java:123)
         at android.app.ActivityThread.main(ActivityThread.java:4321)
         at java.lang.reflect.Method.invokeNative(Native Method)
         at java.lang.reflect.Method.invoke(Method.java:521)
         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
         at dalvik.system.NativeStart.main(Native Method)

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 334
    Points : 218
    Points
    218
    Par défaut
    Ça doit venir du parseur, car j'ai le même erreur lorsque j'obtiens la page d'une autre manière...

  5. #5
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    Thrown when the a string is indexed with a value less than zero, or greater than or equal to the size of the array.
    http://developer.android.com/referen...Exception.html

    Regarde dans ton fichier xml , voir s'il n'y a pas une erreur .

    Edit :

    JDOM StringIndexOutOfBoundsException

    This fix is necessary for all versions of Android before 2.2 Froyo. The following error shows up on Android 2.1 and earlier
    http://code.google.com/p/android-rome-feed-reader/

    Tu as une correction ici
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

Discussions similaires

  1. HttpClient et parsing XML avec JDom
    Par dawadam dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 05/03/2011, 10h38
  2. [SAX] Recuperer le resultat d"un parsing XML avec SAX
    Par chouxe dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 19/12/2006, 15h48
  3. [JDOM] Création d'un fichier xml avec jdom
    Par fabricew59 dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 09/08/2006, 11h17
  4. [SAX] Erreur de parsing XML avec SAX
    Par philobedo dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 02/08/2006, 13h49
  5. [JSP] Parsing XML avec JDOM
    Par benben13 dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 26/08/2005, 17h19

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