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 :

Récupérer et afficher une info d'un site web


Sujet :

Android

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 75
    Points : 54
    Points
    54
    Par défaut Récupérer et afficher une info d'un site web
    Bonjour,

    Je veux afficher une information présente sur un site web dans mon appli quand on clique sur un bouton. Ca parait simple mais je fais surement une erreur quelque part car n'y parvient pas. En fait j'ai une activité qui possède un bouton (MainActivity), une activité qui contiendra le contenu récupéré (Page2) et j'ai crée une autre classe pour la méthode récuperer.


    J'ai ajouté 2 permissions dans le fichier manifest:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    Le mainActivity redirige vers la page 2 lors du clique sur le bouton.

    Dans le onCreate de Page2 j'ai (t1 c'est le TextView où je vex afficher le contenu récupéré):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    try {
    	t1.setText(RecupereEtat.recupere());
         } catch (IOException e) {
           // TODO Auto-generated catch block
    	e.printStackTrace();
         }

    Et sur ma classe RecupereEtat j'ai:
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    public abstract  class RecupereEtat {
     
     
        public static String recupere() throws IOException 
        {   
     
        //métode en utilisant Jsoup
    	String contenu="";
    	try{
            String url = "lurl";
     
            Document doc = Jsoup.connect(url).get();
            Element laclasse = doc.select("td.font_accueil_REPOS").first();
            contenu= laclasse.text();
     
     
     
        }catch(Exception e){
        	contenu="erreur";
     
        }
     
     
     
     
    //méthode 2
     
    	 try {
    	   URL url = new URL("lurl");
    	   HttpURLConnection con = (HttpURLConnection) url.openConnection();
    	  con.connect();
     
    	   readStream(con.getInputStream());
    	   } catch (Exception e) {
    		   contenu="pas ok";
    	   e.printStackTrace();
    	 }
     
     
        return contenu;
     
     
     private static void readStream(InputStream in) {
       BufferedReader reader = null;
       try {
         reader = new BufferedReader(new InputStreamReader(in));
         String line = "";
         while ((line = reader.readLine()) != null) {
           System.out.println(line);
         }
       } catch (IOException e) {
         e.printStackTrace();
       } finally {
         if (reader != null) {
           try {
             reader.close();
           } catch (IOException e) {
             e.printStackTrace();
             }
         }
       }
     }
    }

    J'espère que vous verrez mon erreur, ou me conseillerai une autre manière de le faire. Je vous remercie d'avance pour toute aide.

  2. #2
    Membre expert
    Avatar de MathiasSeguy
    Homme Profil pro
    Fondateur Android2EE - Formation Expertise Android
    Inscrit en
    Avril 2011
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fondateur Android2EE - Formation Expertise Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 185
    Points : 3 692
    Points
    3 692
    Billets dans le blog
    6
    Par défaut
    Bonjour,
    Je comprends pas ta permission android.permission.ACCESS_NETWORK_STATE, tu l'utilises quand?
    Jamais tu la fermes ta connexion ?
    La méthode 2 pour récupérer est bien.
    Tu fais tout ça dans la main Thread ?
    Sinon, avec le peu de détails que tu donnes, je vois pas ton problème, je vois même pas ce que t'obtiens.
    Et sinon,y'a un article qui va arriver (que j'ai écrit) sur l'utilisation de retrofit, cela devrait t'aider.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 75
    Points : 54
    Points
    54
    Par défaut
    Merci pour ta réponse. Je n'utilise pas cette permission je l'ai ajouté au cas où. C'est vrai, je ne ferme pas la connexion. Je sais que la connexion réseau ne peut être faite dans le thread principal mais oui c'est ce qui est fait dans l'exemple. J'ai essayé avec un thread, avec un AsyncTask mais sans aboutir à afficher une info venant du web. Avec la méthode 1 ça bloque au niveau de la connexion, avec la méthode 2 j'ai carrément l'application s'est arrêtée.
    Je lirai ton article volontier.

Discussions similaires

  1. [WB17] Afficher une vidéo dans un site web PHP
    Par zamti dans le forum WebDev
    Réponses: 0
    Dernier message: 22/11/2013, 15h09
  2. Afficher une info bulle dans un composant AWT
    Par Marius_94 dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 13/07/2006, 09h56
  3. Réponses: 4
    Dernier message: 07/06/2006, 14h23
  4. afficher une info sur du texte au passage de la souris
    Par incao dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 07/06/2006, 09h21
  5. afficher une banniere à droite du site
    Par le69 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 26/08/2005, 16h31

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