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ération du résultat d'une requête


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Homme Profil pro
    IUT Informatique
    Inscrit en
    Mars 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : IUT Informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 412
    Par défaut Récupération du résultat d'une requête
    Bonjour,

    J'ai un léger souci au niveau du résultat d'une requête.

    Mon appli Android appel un fichier php qui effectue une requête, je récupère le résultat et je le parse avec tous ce qui va.
    Mais dans le cas où il n'y a pas de résultat ou d'un problème lors du parsage, je passe dans un catch, je fais un log pour voir ce que contient ma variable result. Dans mon esprit il y a deux cas, le problème de parsage, donc ma variable result n'est pas vide, sinon c'est qu'il n'y a pas de résultat, donc elle est vide.
    Du coup j'ai fait un log pour voir le contenu lorsqu'elle est vide, et je vois dans ma jolie LogCat que result est égal à null.

    Pour pouvoir bien dissocier les cas et afficher l'erreur exact à l'utilisateur, j'ai mi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if(result==null)
    {
     //dire à l'utilisateur qu'il n'existe pas d'auto-école dans cette ville
    }
    else
    {
    //dire à l'utilisateur que c'est une erreur lors du parsage
    }
    Le souci, c'est qu'il passe jamais dans mon if, même lorsque result est égal à null, du coup je comprend pas si c'est un tour de magie de mon appli où si c'est moi qui ai mal interprété quelques chose ^^

  2. #2
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    Tu as bien vérifié au debugueur le contenu de ta variable result ?

    Sinon, lorsqu'il a trop de trucs bizarres, tente un clean sur ton projet dans eclipse.

  3. #3
    Membre chevronné
    Homme Profil pro
    IUT Informatique
    Inscrit en
    Mars 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : IUT Informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 412
    Par défaut
    Si utilisé le LogCat en guise de débuggueur est autorisé, oui on peut dire que j'utilise un débuggueur.

    Et comme erreur pour le parsage, il me dit en gros que mon JArray doit commencé par un '['

    Du coup, avant même le try, j'ai mi mon if, mais il rentre toujours dans ce fameux if.

    J'ai tenté un clean en vain, je vais continuer de chercher, mais j'envisage de monter un tour de magie de programmation si je trouve pas le souci :p

  4. #4
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    Pour ce genre d'erreur, il est plus que vivement conseillé d'utiliser le debugueur. Tu pourras vraiment suivre l'évolution de ta variable et faire du pas-à-pas.
    Chose qui est difficile via le forum
    Peux-tu nous donner tout de même un code un peu plus complet ?

    Merci.

  5. #5
    Membre chevronné
    Homme Profil pro
    IUT Informatique
    Inscrit en
    Mars 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : IUT Informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 412
    Par défaut
    Ah ben j'ai jamais utilisé le débuggueur, je suppose que c'est dans le menu run et je lance le debug?

    Sinon mon code c'est celui-là mais avec des lignes rajouter pour les test:

    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
     
    resultatFinal = null;
    	jArray = null;
    	listeResultat.clear();
    	List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
        nameValuePairs.add(new BasicNameValuePair("CodeDepartement",codeDepartement));
        nameValuePairs.add(new BasicNameValuePair("sddsf","1"));
        try 
        {
        	HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost("url");
    		httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
    		HttpResponse response = httpclient.execute(httppost);
    		BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
    		StringBuilder sb = new StringBuilder();
    		String line = null;
    		while ((line = reader.readLine()) != null) 
    		{
    			sb.append(line + "\n");
    		}
     
    		if(sb.toString()==null)
    		{
    			Log.i(TAG,"je suis null");
    		}
    		this.result=sb.toString();
        }
        catch(Exception e)
        {
            Log.i(TAG, "Error in http connection "+e.toString());
            listeResultat.add("Erreur1");
            return listeResultat;
        }
     
        if(this.result!=null)
        {
        	Log.i(TAG,"result= "+this.result);
        	try
            {
            	jArray = new JSONArray(result);
                for(int i=0;i<jArray.length();i++)
                {
                	resultatFinal = jArray.getJSONObject(i);
                	listeResultat.add(resultatFinal.getString("Ville"));
                }
     
                return listeResultat;
            }
            catch(JSONException e)
            {
            	Log.i(TAG, "Error parsing data "+e.toString());
                listeResultat.add("Erreur2");
                return listeResultat;
            }
        }
        else
    	{
    		Log.i(TAG,"nullll");
    		listeResultat.add("Erreur3");
        	return listeResultat;
    	}

    Edit:Effectivement le débug sert beaucoup.

    Ma variable ne contient pas null, mais un tableau dans lequelle j'ai une lettre par case ^^. Merci de m'avoir orienté vers le débug, je vais réussir à me débrouiller maintenant

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/11/2010, 17h20
  2. [ZF 1.10] Récupération du résultat d'une requête (léger problème)
    Par kawa67 dans le forum Zend Framework
    Réponses: 17
    Dernier message: 09/06/2010, 11h52
  3. Réponses: 3
    Dernier message: 09/10/2009, 20h20
  4. [PDO] Récupération des résultats d'une requête
    Par nikco dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 09/06/2009, 01h26
  5. Récupération du résultat d'une requête sur une table liée
    Par champijulie dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 05/06/2007, 12h26

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