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 un fichier json par requête http


Sujet :

Android

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2021
    Messages : 5
    Par défaut Récupérer un fichier json par requête http
    Bonjour à tous,

    Je vous appelle à l'aide car j'ai un problème que je ne parviens pas à résoudre... C'est un problème qui vient soit de mes connaissances Android soit de mes connaissances php (en espérant trouver quelqu'un qui soit fort dans ces deux domaines)

    Je suis en train de développer une application Android qui doit récupérer des informations contenues dans un fichier json sur mon serveur local.
    J'ai donc pensé à afficher ces valeurs sur une page php et à venir récupérer le contenu de cette page à l'aide d'une requête http.

    Etant donné que c'était la première fois que j'utilisais les requêtes http, j'ai commencé en récupérant les données de cette page :
    https://my-json-server.typicode.com/...e/demo/profile

    Et mon code est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    private void jsonParse() {
            String url = "https://my-json-server.typicode.com/typicode/demo/profile";
            JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null,
                    new Response.Listener<JSONObject>() {
                        @Override
                        public void onResponse(JSONObject response) {
                            try {
                                String name = response.getString("name");
     
                                mTextViewResult.append(name);
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
                        }
    etc...

    Tout fonctionne ! J'arrive à afficher "typicode" sur mon émulateur.

    Le problème c'est quand je passe par un lien menant à ma machine locale "http://192..../test.php"
    test.php se contente d'afficher mon fichier json qui est une simple copie du lien que j'ai mis plus haut.

    Là, plus rien ne s'affiche sur mon émulateur.

    Et je ne sais pas si c'est à cause de mes requêtes qui ne fonctionneraient pas sur un site en local ?
    Ou alors si c'est ma manière d'afficher mon fichier JSON qui n'est pas bonne (auquel cas, ce sujet n'a rien à faire ici...) ?

    J'espère avoir été clair et que l'un d'entre vous pourra me venir en aide

    Merci d'avance
    Anatole

  2. #2
    Membre chevronné
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mai 2020
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mai 2020
    Messages : 339
    Par défaut
    Bonjour,

    Quand vous dites "test.php se contente d'afficher mon fichier json qui est une simple copie du lien que j'ai mis plus haut." celà signifie que, via votre navigateur, ça semble bon du côté serveur ?

    Si c'est le cas, il faut s'assurer qu'il n'y ai aucun message d'erreur côté Android. Ce serait étonnant qu'il y ai un problème mais pas d'exceptions. Peut-être que votre serveur local n'est pas accessible depuis votre application. Peut-être aussi que JsonObjectRequest recherche un header "Content-Type: application/json" mais que votre serveur ne le donne pas.

    Commencez par comparer les réponses Http (contenu et headers) du serveur "typicode" et "local", si tout semble en ordre vérifiez que l'application Android sais accéder au serveur local.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2021
    Messages : 5
    Par défaut
    Bonjour,
    Merci pour votre réponse.

    Je suis parvenu a régler le problème, il venait de deux endroit différent :

    • L'appli Android ne parvenait pas a accéder au site (http --> non sécurisé) pour cela j'ai ajouté dans la rubrique <application> du AndroidManifest.xml de mon application la ligne suivante :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      android:usesCleartextTraffic="true"
    • L'appli Android ne trouvait pas de type json sur ma page web : pour cela, j'ai modifié le lien de ma requête pour qu'il mène directement au .json sur mon serveur et pas sur ma page php (ex : http://host/test.json au lieu de http://host/test.php).



    Voila

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

Discussions similaires

  1. [XL-2007] Export fichier par requête HTTP POST
    Par Bartania dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 12/08/2014, 09h09
  2. [AJAX] Lecture d'un fichier json par ajax
    Par zizoo510 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/08/2008, 12h11
  3. Réponses: 3
    Dernier message: 11/03/2008, 01h14
  4. Récupérer un fichier sur un serveur HTTP
    Par Medivh dans le forum WinDev
    Réponses: 2
    Dernier message: 01/04/2007, 22h28
  5. Récupérer le résultat d’une requête http
    Par f_in_afyn dans le forum Langage
    Réponses: 2
    Dernier message: 27/01/2007, 17h41

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