Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Android] Problème de récupération de données XML

Sujet résolu
    18 avril 2018 à 16:16:41

    Bonjour, 

    Dans le cadre d'un projet de L3 Informatique, nous devons réaliser une application mobile permettant de récupérer son emploi du temps (à partir de la plateforme celcat). Cependant, nous n'arrivons pas à récupérer le fichier XML. Voici la fonction que j'utilise actuellement pour télécharger le xml et l'afficher sous forme d'une chaine de caractère. J'ai testé la fonction en Java et cela marchait avec l'url suivant : http://celcat.univ-angers.fr/web/publi/etu/g564693.xml , par contre, cela ne marche pas sous android. J'ai tout de même réussi à faire fonctionner ce code avec un fichier xml provenant d'une autre adresse (pour tester) et cela marchait sous android (cette adresse là : http://www.info.univ-angers.fr/~gh/Webrd/agences01.xml)

    Voici le code qui fonctionne avec cette adresse http://www.info.univ-angers.fr/~gh/Webrd/agences01.xml mais pas avec l'adresse qui nous intéresse : http://celcat.univ-angers.fr/web/publi/etu/g564693.xml.

    public class XMLAsyncTask extends AsyncTask<String, Void, Document> {
    
            private final static String TAG = Activity.class.getName();
    
            @Override
            protected Document doInBackground(String ... strings) {
    
                URL url;
                InputStream is = null;
                BufferedReader br;
                String line;
                String result = null;
    
                try {
                    url = new URL("http://celcat.univ-angers.fr/web/publi/etu/g564693.xml");
                    System.out.println(url.toString());
                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                    connection.getContentLength();
                    is = connection.getInputStream();
    
                    br = new BufferedReader(new InputStreamReader(is));
                    System.out.println(br.readLine());
                    while ((line = br.readLine()) != null) {
                        result = result + line + "\n";
                    }
                } catch (Exception e) {
    
                } finally {
                    try {
                        if (is != null) is.close();
                    } catch (IOException ioe) {}
                }
    
                System.out.println(result);
    
                Document doc =null;
                return doc;
            }
    
            @Override
            protected void onPostExecute(Document document) {
                Log.e(TAG, "Finished");
    
            }
    }

    Ne faites pas attention au Document, pour l'instant je ne m'en sert pas et c'est normal qu'il soit null. Ce que je veux souligner c'est que le result (la chaine de charactère) est null alors qu'elle devrait contenir les données du XML.

    Avez vous une idée de ce pourquoi cela ne marche pas sous android (alors qu'en Java ça marche), avez vous une piste pour nous aider à obtenir les données de ce fichier ?

    Merci pour votre Aide ! 

    -
    Edité par Lusgem 18 avril 2018 à 17:08:14

    • Partager sur Facebook
    • Partager sur Twitter
      15 mai 2018 à 8:30:47

      Salut,

      Danse cas de l'URL qui te pose soucis, tu es sûr que tu ne tombez pas dans un catch ? Je vois au moins un blocs catch vide, tu passes donc sous silence une potentielle exception qui pourra t'aider à comprendre ton problème.

      • Partager sur Facebook
      • Partager sur Twitter

      [Android] Problème de récupération de données XML

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown