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 :

Volley, JsonRequest, problème d'affichage du résultat


Sujet :

Android

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Volley, JsonRequest, problème d'affichage du résultat
    Bonjour a tous,

    J'essaie d'accéder aux données de json via Android en utilisant Volley Library, et pour le backend du serveur web, j'ai utilisé python. Voici mon code côté serveur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    def showAndroid(request):
        users=User.objects.all()
        data = serializers.serialize('json', users, fields=('nom', 'prenom', 'postnom', 'mail'))
        return HttpResponse(data, content_type='application/json')
    Lorsque j’accède à l'URL, j'obtiens le résultat suivant:

    Nom : json_response.PNG
Affichages : 498
Taille : 17,1 Ko

    Et voici mon code dans Android studio:

    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
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
    package com.example.lislis.mesexercices;
     
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;
    import android.widget.Toast;
     
    import com.android.volley.Request;
    import com.android.volley.RequestQueue;
    import com.android.volley.Response;
    import com.android.volley.VolleyError;
    import com.android.volley.toolbox.JsonObjectRequest;
    import com.android.volley.toolbox.Volley;
     
    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;
     
    public class UserJson extends AppCompatActivity {
    EditText nom,prenom,postnom,email;
    Button ajouter,voir;
        TextView list;
    RequestQueue requestQueue;
    String insertUrl="http://192.168.1.14:8000/webservices/insert-users/";
        String showUrl="http://192.168.1.14:8000/webservices/afficher-users/";
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.user_json);
            nom=(EditText)findViewById(R.id.nom);
            prenom=(EditText)findViewById(R.id.prenom);
            postnom=(EditText)findViewById(R.id.postnom);
            email=(EditText)findViewById(R.id.email);
            ajouter=(Button) findViewById(R.id.ajouter_user);
            voir=(Button)findViewById(R.id.afficher_users);
            list=(TextView)findViewById(R.id.list_users);
     
            requestQueue= Volley.newRequestQueue(this);
     
            voir.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    JsonObjectRequest jsonObjectRequest=new JsonObjectRequest(Request.Method.GET, showUrl, new Response.Listener<JSONObject>() {
                        @Override
                        public void onResponse(JSONObject response) {
                            try {
                                JSONArray users=response.getJSONArray("data");
                                for(int i=0;i<users.length();i++)
                                {
                                    JSONObject user=users.getJSONObject(i);
                                    String fname=user.getString("prenom");
                                    String lname=user.getString("nom");
                                    String mname=user.getString("postnom");
                                    String mail=user.getString("mail");
                                    list.append(fname+" "+lname+" "+mname+" "+mail+"\n");
                                    System.out.println("Tototo\n"+fname+" "+lname+" "+mname+" "+mail+"\n");
                                }
                                list.append("===\n=");
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
     
                        }
                    }, new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError error) {
     
                        }
                    });
                    requestQueue.add(jsonObjectRequest);
                }
            });
        }
    }
    Mais lorsque je clique sur le bouton pour afficher les données JSON, dans mon moniteur de serveur django, je peux voir une requête GET réussie avec un code d'état 200:

    Pièce jointe 312234
    Mais pour tester si tout va bien dans le serveur, j'ai essayé de créer un seul fichier HTML avec une requête Ajax et j'ai copié le fichier sur un autre ordinateur dans mon même WLAN, j'accede a json sans problème. Y a-t-il un problème avec mon code source?

    Merci d'avance
    Images attachées Images attachées  

  2. #2
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Points : 1 493
    Points
    1 493
    Par défaut
    Salut,

    Tu as un message d'erreur dans le logcat? Cela nous permettra de traquer un potentiel problème dans ton code.

    En passant, il ne faut pas ignorer les erreurs pouvant survenir quand tu utilises la gestion d'erreurs (dans ton cas je fais plus allusion au volley dans la méthode onErrorResponse). Sinon il te sera difficile de savoir où se situe le problème.


    Christian Djo,
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

Discussions similaires

  1. Problème d'affichage de résultat
    Par tunis71187 dans le forum Reports
    Réponses: 2
    Dernier message: 21/02/2011, 08h55
  2. [MySQL] Petit problème d'affichage de résultats
    Par lukyVJ dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 27/01/2011, 11h24
  3. [PHP 4] Problème d'affichage de résultat
    Par fraisa1985 dans le forum Langage
    Réponses: 1
    Dernier message: 15/06/2009, 19h16
  4. problème d'affichage du résultat dans une classe qui utilise SNMP
    Par ramzouni dans le forum Débuter avec Java
    Réponses: 0
    Dernier message: 22/05/2009, 01h26
  5. Problème d'affichage du résultat
    Par cirtey dans le forum C
    Réponses: 6
    Dernier message: 24/02/2007, 19h01

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