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.
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.
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
37
38
39
40
41
42
43
44
45 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"); } }
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 !
Partager