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éré JSON depuis une API


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2014
    Messages : 19
    Par défaut Récupéré JSON depuis une API
    Bonjour,

    Mais je n'arrive pas à récupéré dans un JSONObject le contenu d'une API
    J'aimerais avoir le contenu de "http://api.androidhive.info/contacts/" dans une variable JSONObject

    J'ai chercher sur plusieurs forum et essayée plusieurs solution et rien ne fonctionne..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String url = "http://api.androidhive.info/contacts/";
    JSONParser jParser = new JSONParser();
    JSONObject json = jParser.getJSONFromUrl(url);
    Ne devrais pas suffire ?
    Pourriez vous m'aider ?

    Cordialement.


    Edit:
    J'ai trouver cette fonction sur internet, elle marche nickel dans un projet java normal mais dans mon projet android elle ne fonctionne pas..

    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
    public static String getCode(String url)
    	   {
    	       String code = "";
     
    	                BufferedReader in = null;
     
    	                try
    	                {
    	                    URL site = new URL(url);
    	                    in = new BufferedReader(new InputStreamReader(site.openStream()));
     
    	                    String inputLine;
    	                    while ((inputLine = in.readLine()) != null)
    	                    {
    	                        code = code + "\n" + (inputLine);
    	                    }
     
    	                    in.close();
     
    	                }
    	                catch (IOException ex)
    	                {
    	                    System.out.println("Erreur dans l'ouverture de l'URL : " + ex);
    	                }
    	                finally
    	                {
    	                    try
    	                    {
    	                        in.close();
    	                    }
    	                    catch (IOException ex)
    	                    {
    	                        System.out.println("Erreur dans la fermeture du buffer : " + ex);
    	                    }
    	                }
     
    	       return code;
    	    }

  2. #2
    Membre Expert
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Par défaut
    Mets ce code dans une AsyncTask et ca devrait fonctionner.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Novembre 2014
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Novembre 2014
    Messages : 67
    Par défaut
    Salut,

    Comme dit plus haut, en Android, tout les appels à des ressources externes (requêtes http, SQL...) doivent se faire dans un thread différent du thread principal.
    Pour se faire, on à a disposition la classe AsyncTask.
    Regarde ici

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2014
    Messages : 19
    Par défaut
    Merci de vos réponse, mais la AsyncTask je doit la mettre dans le mainActivity ?
    J'ai regarder le site et je ne cache pas que je n'ai pas très bien compris..

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Novembre 2014
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Novembre 2014
    Messages : 67
    Par défaut
    L'AsyncTask, ou plutôt ta classe qui héritera de AsyncTask<> est une classe à part entière.
    Tu peux décider de la mettre dans un fichier java à part entière où en classe privée de ton Activity

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2014
    Messages : 19
    Par défaut
    D'accord merci de ton aide.
    Voila j'ai mit dans la class mainActivity cela
    fonctionTest() est la fonction la ou s'effectue les connections HTTP et renvoie un String.
    Mais je n'arrive pas a récupéré la variable data dans le onCreate()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private class JSONTask extends android.os.AsyncTask <String, String, String>{
    	protected String doInBackground(String... params) {
    		String data = fonctionTest();
    		return data;
    	}

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/04/2014, 12h00
  2. [WD14] Passage de Structure depuis une API
    Par SavageBeast dans le forum WinDev
    Réponses: 1
    Dernier message: 09/09/2013, 15h18
  3. Appeler une API depuis Excel
    Par DébutantOracle dans le forum Connexions aux bases de données
    Réponses: 1
    Dernier message: 28/01/2009, 11h32
  4. Réponses: 1
    Dernier message: 14/03/2008, 11h48

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