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 :

Envoie de données via HttpPost et AsyncTask


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 3
    Par défaut Envoie de données via HttpPost et AsyncTask
    Bonjour,

    Mon objectif est d'envoyer une donnée vers une base de données via la méthode post. La requête étant lourdes alors j'utilise un asynctask. Cependant au passage DoInBackground la demande ne fonctionne pas. Je ne vois pas l'erreur si vous pouviez m'éclairer, merci d'avance. Voici mon code :

    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
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    package com.example.projet_android;
     
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
     
    import org.apache.http.HttpResponse;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.ClientProtocolException;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.message.BasicNameValuePair;
     
    import android.app.Activity;
    import android.os.AsyncTask;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;
    import android.widget.Toast;
     
     
     
    public class MainActivity extends Activity {	 
            TextView content;
            EditText value;
     
        @Override
        public void onCreate(Bundle savedInstanceState) {
        	super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            value =  (EditText)findViewById(R.id.edittext);
            Button button=(Button)findViewById(R.id.button);
     
            button.setOnClickListener(new Button.OnClickListener(){
     
            	public void onClick(View v){
            		Toast.makeText(getApplicationContext(), "Début du traitement asynchrone", Toast.LENGTH_LONG).show();
            		new MyAsyncTask().execute(value.getText().toString());
            	}
            });
        }
     
     
    private class MyAsyncTask extends AsyncTask<String, Void, Void>{
     
     
     
    	protected void onPreExecute() {
    		super.onPreExecute();
    		Toast.makeText(getApplicationContext(), "Début du traitement asynchrone", Toast.LENGTH_LONG).show();
    	}
     
    	@Override
    	protected Void doInBackground(String... params) {
    		postData(params[0]);
    		return null;
    	}
     
    	@Override
    	protected void onPostExecute(Void result) {
    		Toast.makeText(getApplicationContext(), "Le traitement asynchrone est terminé", Toast.LENGTH_LONG).show();
    	}
     
    	public void postData(String valueIWantToSend) {
    		// Create a new HttpClient and Post Header
    		HttpClient httpclient = new DefaultHttpClient();
    		HttpPost httppost = new HttpPost("http://127.0.0.1/android/reception.php");
     
    		try {
    			// Add your data
    			List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
    			nameValuePairs.add(new BasicNameValuePair("texte", valueIWantToSend));
    			httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
     
    			// Execute HTTP Post Request
    			HttpResponse response;
    			response = httpclient.execute(httppost);
     
     
    		} catch (ClientProtocolException e) {
    			// TODO Auto-generated catch block
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    		}
     
    	}
    }
    }

  2. #2
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    euh...est-tu bien certain de vouloir envoyer tes données sur 127.0.0.1 ?!
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  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 : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Par défaut
    Outre ce (gros) souci... ne masque pas tes exceptions !

    Rempli tes catch vide avec la ligne Log.e(TAG, message, e); où :
    - TAG est une String permettant de filtrer
    - message est une String informative sur l'opération en cours
    - e est l'exception

    Tu auras ensuite ton problème dans le LogCat avec une joulie exception.

    D'une manière générale, ne crée pas de catch vide, le minimum est de logger l'exception pour voir le problème.

    Point convention Java :
    Pas de tiret bas (_) dans les noms de package.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 3
    Par défaut
    Alors déjà merci pour vos réponses! J'ai compris pour l'adresse Ip, je l'ai changé, j'ai ajouté les exceptions mais rien y fait, et je ne vois pas d'erreur dans le logcat..

  5. #5
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Citation Envoyé par djos37 Voir le message
    Alors déjà merci pour vos réponses! J'ai compris pour l'adresse Ip, je l'ai changé, j'ai ajouté les exceptions mais rien y fait, et je ne vois pas d'erreur dans le logcat..
    ajoute des Log.d(TAG, "Je suis ici"); dans ton code pour suivre son évolution (ou utilise le mode pas à pas)
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 3
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    ajoute des Log.d(TAG, "Je suis ici"); dans ton code pour suivre son évolution (ou utilise le mode pas à pas)
    Salut Paul, je reviens que maintenant car j'ai plus projet en cours a cause de mon école. J'ai mis plusieurs log.d qui m'avertisse ou je me trouve dans mon code. Tout à l'air de bien se déroulé, mais rien dans ma bdd.. J'ai un avertissement sur ma ligne : HttpResponse response;
    Je te remercie de ton aide.

Discussions similaires

  1. [cURL] connexion SSL sur un serveur et envoi de données via POST.
    Par Tongs dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 07/02/2008, 14h29
  2. Envoi de données via socket
    Par Popeye63 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 17/10/2007, 13h05
  3. [SQL] Pb Sql lors de l envoie des données via un formulaire
    Par xtiand4 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/06/2006, 14h18
  4. erreur lors de l'envoie de donné via les socket.
    Par poporiding dans le forum C++
    Réponses: 1
    Dernier message: 23/05/2006, 14h23
  5. Envoi des données via mail
    Par zorba49 dans le forum ASP
    Réponses: 4
    Dernier message: 10/04/2006, 14h35

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