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 :

Requête post ne fonctionne pas


Sujet :

Android

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 61
    Points : 42
    Points
    42
    Par défaut Requête post ne fonctionne pas
    Bonjour à tous,

    Je réalise une application, je souhaite récupérer des information via une requête post. voici le code qui 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
    try {
    			      HttpClient httpclient = new DefaultHttpClient();
    			      HttpPost httppost = new HttpPost("monsite/pre_search.php");
    			      // Add your data
    			      List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
    			      nameValuePairs.add(new BasicNameValuePair("transaction", "Vente"));
    			      httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
     
    			      // Execute HTTP Post Request
    			      HttpResponse response = httpclient.execute(httppost);
     
    			      text = (TextView)myFragmentView.findViewById(R.id.txt);
    			      text.setText("Chargement réussi");
     
     
    			  } catch (Exception e) {
    			      // TODO Auto-generated catch block
    			  }
    Lorsque j'enlève la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HttpResponse response = httpclient.execute(httppost);
    Tout se déroule correctement.

    Mon code est-il mal écrit? D'où pourrait venir l'erreur?

    Merci d'avance pour vos réponses

    Bien cordialement.

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 281
    Points : 161
    Points
    161
    Par défaut
    Déjà il nous faudrait le stacktrace lors du plantage

    Pour cela il faut capturer l'exception ex dans ton catch() avec Log.e(...)

    Ensuite donnes nous le résultat dans le Logcat

    Exécute tu ce code dans l'UI Thread ?

    Tonton Nicroman ne va pas être content

  3. #3
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Vu que ça à l'air d'être quasiment le même problème, je vais me citer d'un autre sujet...

    Citation Envoyé par Moi-même
    Avec ma boule de cristal, je dis que tu tests sur un Android 4.1.2, et que ton exception est une NetworkOnMainThreadException.

    Tu as trois grosses erreurs :
    • PAS DE CATCH VIDE ! Ca doit être l'une des phrases que je répète le plus. Au minimum, faire un Log.e(MON_TAG, "mon message", e); pour voir l'erreur dans le LogCat.
    • Pas d'appel réseau sur le thread principal. C'est une mauvaise pratique en général, et Android, depuis la version 3, lève une exception quand il détecte cette mauvaise pratique. Il te faut le faire dans un Thread à part, ou plus facilement via une AsyncTask.
    • [...]
    Et j'insiste, pas de catch vide !

  4. #4
    Membre habitué
    Inscrit en
    Décembre 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Décembre 2007
    Messages : 94
    Points : 134
    Points
    134
    Par défaut
    Primo, va falloir tracer ton erreur dans le log (bonnes habitudes). Tu pourras utiliser un Et la je pense que tu devrais tomber sur un NetworkOnMainThreadException.
    Tu peux faire du google la dessus, mais en bref il va te falloir exécuter ta requête post dans un autre thread outre le main. Comme l'a recommendé Hizin, un AsyncTask fera facilement ton bonheur.

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut
    Citation Envoyé par Mstreatboy Voir le message
    Primo, va falloir tracer ton erreur dans le log (bonnes habitudes). Tu pourras utiliser un

    Ouhlalah, mais fais attention à ce que tu écris
    Hizin va te tirer les oreilles

  6. #6
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Moi aussi....

    On ne fait JAMAIS de printStackTrace()
    un simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Log.e("NomDeMaClasse","Erreur à tel endroit",e);
    suffit pour *tout* avoir correctement, au bon endroit, même sur un device qui n'est pas l'émulateur ^^

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 61
    Points : 42
    Points
    42
    Par défaut
    J'ai finalement réussi à résoudre mon erreur, je vous remercie de vos réponses, je ferais plus attention à mon code à l'avenir

    Et puis j'ai commencé que lundi la programmation pour android J'espère acquérir rapidement les bonne habitudes !

    Encore merci pour vos réponses, ça me permet de m'améliorer

Discussions similaires

  1. [SQL] requête qui ne fonctionne pas
    Par marie4449 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 28/03/2007, 16h47
  2. [MySQL] Requête UPDATE ne fonctionne pas
    Par JackBeauregard dans le forum PHP & Base de données
    Réponses: 25
    Dernier message: 29/01/2007, 23h32
  3. [MySQL] Ma requête SQL ne fonctionne pas
    Par fabrice88 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/01/2007, 12h41
  4. [ADO.Net][OleDb] Pourquoi ma requête access ne fonctionne pas?
    Par Bapt.ice dans le forum Accès aux données
    Réponses: 6
    Dernier message: 05/05/2006, 17h19

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