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 :

Impossible de récupérer mes données de la base


Sujet :

Android

  1. #1
    Débutant  
    Inscrit en
    Mars 2008
    Messages
    1 123
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 1 123
    Points : 170
    Points
    170
    Par défaut Impossible de récupérer mes données de la base
    bonsoir à tous
    j'ai essayé plusieurs code pour récupérer mes données de la base mais toujours je aucun résultat

    voici le code que j'ai essayé cette fois ci
    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
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
     
    package com.example.tourisme;
     
     
     
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.UnsupportedEncodingException;
    import java.util.ArrayList;
    import java.util.List;
     
     
    import org.apache.http.HttpEntity;
    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.ResponseHandler;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.impl.client.BasicResponseHandler;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.message.BasicNameValuePair;
    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;
     
     
    import com.example.a1.R;
    import android.app.Activity;
    import android.app.AlertDialog;
    import android.app.ProgressDialog;
    import android.content.DialogInterface;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
     
     
     
    public class MainActivity extends Activity {
    	private Button connexion1;
    	private EditText username,password;
    	public ProgressDialog progressDialog;
    	public  String url,user,pass;
    	HttpPost httppost;
    	StringBuffer buffer;
    	HttpResponse response;
    	HttpClient httpclient;
    	List<NameValuePair> nameValuePairs;
    	ProgressDialog dialog = null;
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            connexion1 = (Button) findViewById(R.id.connexion);
    		username = (EditText) findViewById(R.id.name);
    		password = (EditText) findViewById(R.id.pass);
     
     
    		connexion1.setOnClickListener(new View.OnClickListener()
    		{
     
     
    			    public void onClick(View v)
    			{
     
    					 showAlert(getServerData());
     
     
     
     
     
     
     
     
    			}
     
    	    });
     
        }
     
        private String getServerData() {
    		InputStream is = null;
    		String result = "";
    		String returnString = null;
    			ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
    		nameValuePairs.add(new BasicNameValuePair("nn","nn"));
     
    		try{
    			 final String strURL = "http://192.168.36.109/android_connect/check.php";
    			HttpClient httpclient = new DefaultHttpClient();
    			HttpPost httppost = new HttpPost(strURL);
    			httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
    			HttpResponse response = httpclient.execute(httppost);
    			HttpEntity entity = response.getEntity();
    			is = entity.getContent();
     
    		}catch(Exception e){
    			Log.e("log_tag", "Error in http connection " + e.toString());
    		}
     
    		try{
    			BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
    			StringBuilder sb = new StringBuilder();
    			String line = null;
    			while ((line = reader.readLine()) != null) {
    				sb.append(line + "\n");
    			}
    			is.close();
    			result=sb.toString();
    		}catch(Exception e){
    			Log.e("log_tag", "Error converting result " + e.toString());
    		}
    		try{
    			JSONArray jArray = new JSONArray(result);
    			for(int i=0;i<jArray.length();i++){
    				JSONObject json_data = jArray.getJSONObject(i);
    				showAlert("log_tag"+"username: "+json_data.getInt("username")+
    						", password: "+json_data.getString("password")
    				);
    				returnString += "\n\t" + jArray.getJSONObject(i); 
    			}
    		}catch(JSONException e){
    			Log.e("log_tag", "Error parsing data " + e.toString());
    		}
    		return returnString; 
    	}
     
     
         public void showAlert(final String h){
     		MainActivity.this.runOnUiThread(new Runnable() {
     		    public void run() {
     		    	AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
     		    	builder.setTitle("Login Error.");
     		    	builder.setMessage(h)  
     		    	       .setCancelable(false)
     		    	       .setPositiveButton("OK", new DialogInterface.OnClickListener() {
     		    	           public void onClick(DialogInterface dialog, int id) {
     		    	           }
     		    	       });		    	       
     		    	AlertDialog alert = builder.create();
     		    	alert.show();		    	
     		    }
     		});
     	}
     
    }
    mon code php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
         mysql_connect("localhost","root","");
      mysql_select_db("androidhive");
      $sql=mysql_query("SELECT * FROM tbl_user WHERE username like '".$_REQUEST['username']."%'");
      while($row=mysql_fetch_assoc($sql))
      $output[]=$row;
      print(json_encode($output));
      mysql_close();
     
     
     
    ?>
    mon fichier manifest
    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
     
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.a1"
        android:versionCode="1"
        android:versionName="1.0" >
     
        <uses-sdk
            android:minSdkVersion="8"
            android:targetSdkVersion="21" />
     
     	<uses-permission android:name="android.permission.INTERNET"/>
     
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
     
     
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name="com.example.tourisme.MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
     
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
     
     
        </application>
     
    </manifest>
    SVP je suis bloquée je n'avance plus si je n'aurai pas une solution


    Merci d'avance

  2. #2
    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
    Il y a de nombreux messages sur le sujet dans le forum.

    Hélas beaucoup de gens recopient un tutoriel trouvé sur le Net. Tout vient d'une source un peu "pourrie" (désolé pour le terme mais c'est le cas), et les autres tutoriels se sont mis à recopier bêtement le code.

    Voir ici pour une explication plus en détail:
    http://www.developpez.net/forums/d14...x/#post8131873


    Ce message contient les informations sur:
    * Comment loguer correctement les erreurs (on ne fait pas Log.e("xxxxx","dfskjnsdf "+e.toString()); par exemple)
    * Comment gérer correctement les exceptions (on ne fait pas un try/catch autour d'un appel juste parce que sinon "ça ne compile pas" ).
    * Comment gérer correctement les HttpPost et surtout les Entity (la lecture d'une entity a base de BufferedInputStream... non mais ... enfin bref)
    * Comment placer le code dans un tâche asynchrone (pas dans le thread de l'UI donc) histoire de programmer correctement (d'une part), et surtout d'éviter les exceptions post Android 3.0.


    Voilà voilà
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  3. #3
    Débutant  
    Inscrit en
    Mars 2008
    Messages
    1 123
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 1 123
    Points : 170
    Points
    170
    Par défaut
    je n'arrive toujours pas à trouver une solution
    SVP aidez moi juis suis vraiment bloquée

  4. #4
    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
    Après les corrections de code données dans le précédent post... Tu en es ou ? Quelles sont les nouvelles erreurs ?
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  5. #5
    Débutant  
    Inscrit en
    Mars 2008
    Messages
    1 123
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 1 123
    Points : 170
    Points
    170
    Par défaut
    quand je clique sur le bouton de connexion rien ne se passe

    comme si je n'ai pas cliqué

  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
    d'accord, mais il ya un LogCat ?

    Peux tu nous montrer le code tel qu'il est après correction ?
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  7. #7
    Débutant  
    Inscrit en
    Mars 2008
    Messages
    1 123
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 1 123
    Points : 170
    Points
    170
    Par défaut
    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
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
     
    package com.example.tourisme;
     
     
     
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.UnsupportedEncodingException;
    import java.util.ArrayList;
    import java.util.List;
     
     
    import org.apache.http.HttpEntity;
    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.ResponseHandler;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.impl.client.BasicResponseHandler;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.message.BasicNameValuePair;
    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;
     
     
    import com.example.a1.R;
     
     
    import android.app.Activity;
    import android.app.AlertDialog;
    import android.app.ProgressDialog;
    import android.content.DialogInterface;
    import android.content.DialogInterface.OnCancelListener;
    import android.os.AsyncTask;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;
     
     
     
    public class MainActivity extends Activity {
    	private Button connexion1;
    	private EditText username,password;
    	public ProgressDialog progressDialog;
    	public  String user,pass;
    	HttpPost httppost;
    	StringBuffer buffer;
    	HttpResponse response;
    	HttpClient httpclient;
    	List<NameValuePair> nameValuePairs;
    	ProgressDialog dialog = null;
     
    	private static String url = "http://192.168.36.109/android_connect/check.php";
    	String result = null;
        InputStream is = null;
        JSONObject json_data=null;
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            connexion1 = (Button) findViewById(R.id.connexion);
    		username = (EditText) findViewById(R.id.name);
    		password = (EditText) findViewById(R.id.pass);
     
     
    		connexion1.setOnClickListener(new View.OnClickListener()
    		{
     
     
    			    public void onClick(View v)
    			{
     
     
     
    					 new task().doInBackground();
     
     
     
     
    			}
     
    	    });
     
        }
     
     
        protected void onPostExecute(Void v) {
     
    		// ambil data dari Json database
    		try {
    			JSONArray Jarray = new JSONArray(result);
    			for(int i=0;i<Jarray.length();i++)
    			{
    			JSONObject Jasonobject = null;
    			Jasonobject = Jarray.getJSONObject(i);
     
    			//get an output on the screen
    			String name = Jasonobject.getString("username");
    			String password = Jasonobject.getString("password");
    		    username.append(name+"\t\t"+password+"\t\t"+"\n");
     
    			}
    			this.progressDialog.dismiss();
     
    		} catch (Exception e) {
    			// TODO: handle exception
    			Log.e("log_tag", "Error parsing data "+e.toString());
    		}
    	}
     
        class task extends AsyncTask<String, String, Void>
        {
        private ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);
            InputStream is = null ;
            String result = "";
            protected void onPreExecute() {
               progressDialog.setMessage("Download data...");
               progressDialog.show();
               progressDialog.setOnCancelListener(new OnCancelListener() {
        	@Override
        		public void onCancel(DialogInterface arg0) {
        		task.this.cancel(true);
     
        	   }
        	});
             }
            @Override
         	protected Void doInBackground(String... params) {
         	  String url_select = "http://192.168.36.109/android_connect/check.php";
     
         	  HttpClient httpClient = new DefaultHttpClient();
         	  HttpPost httpPost = new HttpPost(url_select);
     
                   ArrayList<NameValuePair> param = new ArrayList<NameValuePair>();
     
         	    try {
         		httpPost.setEntity(new UrlEncodedFormEntity(param));
     
         		HttpResponse httpResponse = httpClient.execute(httpPost);
         		HttpEntity httpEntity = httpResponse.getEntity();
     
         		//read content
         		is =  httpEntity.getContent();					
     
         		} catch (Exception e) {
     
         		Log.e("log_tag", "Error in http connection "+e.toString());
         		}
         	try {
         	    BufferedReader br = new BufferedReader(new InputStreamReader(is));
         		StringBuilder sb = new StringBuilder();
         		String line = "";
         		while((line=br.readLine())!=null)
         		{
         		   sb.append(line+"\n");
         		}
         			is.close();
         			result=sb.toString();	
         			 showAlert("ok");
     
         				} catch (Exception e) {
         					// TODO: handle exception
         					Log.e("log_tag", "Error converting result "+e.toString());
         				}
     
         			return null;
     
         		}
     
        }
     
     
     
     
     
     
     
         public void showAlert(final String h){
     		MainActivity.this.runOnUiThread(new Runnable() {
     		    public void run() {
     		    	AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
     		    	builder.setTitle("Login Error.");
     		    	builder.setMessage(h)  
     		    	       .setCancelable(false)
     		    	       .setPositiveButton("OK", new DialogInterface.OnClickListener() {
     		    	           public void onClick(DialogInterface dialog, int id) {
     		    	           }
     		    	       });		    	       
     		    	AlertDialog alert = builder.create();
     		    	alert.show();		    	
     		    }
     		});
     	}
     
        }
    et voici mon fichier .php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
         mysql_connect("localhost","root","");
      mysql_select_db("androidhive");
      $sql=mysql_query("SELECT * FROM tbl_user ");
     while($objRs = mysql_fetch_assoc($sql)){
          $output[] = $objRs;
       }
       echo json_encode($output);
      mysql_close();
     ?>
    le logcat:
    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
     
    02-27 18:22:20.643: W/KeyCharacterMap(309): No keyboard for id 0
    02-27 18:22:20.673: W/KeyCharacterMap(309): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
    02-27 18:25:32.814: E/log_tag(309): Error in http connection java.net.SocketException: The operation timed out
    02-27 18:25:32.814: E/log_tag(309): Error converting result java.lang.NullPointerException
    02-27 18:25:32.823: E/log_tag(309): Error parsing data org.json.JSONException: End of input at character 0 of 
    02-27 18:28:41.883: I/taghttppost(309): java.net.SocketException: The operation timed out
    02-27 18:28:41.883: I/tagconvertstr(309): java.lang.NullPointerException
    02-27 18:28:41.893: D/AndroidRuntime(309): Shutting down VM
    02-27 18:28:41.893: W/dalvikvm(309): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
    02-27 18:28:41.993: E/AndroidRuntime(309): FATAL EXCEPTION: main
    02-27 18:28:41.993: E/AndroidRuntime(309): java.lang.NullPointerException
    02-27 18:28:41.993: E/AndroidRuntime(309): 	at org.json.JSONTokener.nextCleanInternal(JSONTokener.java:112)
    02-27 18:28:41.993: E/AndroidRuntime(309): 	at org.json.JSONTokener.nextValue(JSONTokener.java:90)
    02-27 18:28:41.993: E/AndroidRuntime(309): 	at org.json.JSONArray.<init>(JSONArray.java:87)
    02-27 18:28:41.993: E/AndroidRuntime(309): 	at org.json.JSONArray.<init>(JSONArray.java:103)
    02-27 18:28:41.993: E/AndroidRuntime(309): 	at com.example.tourisme.MainActivity.maconnexion_internet(MainActivity.java:131)
    02-27 18:28:41.993: E/AndroidRuntime(309): 	at com.example.tourisme.MainActivity$1.onClick(MainActivity.java:77)
    02-27 18:28:41.993: E/AndroidRuntime(309): 	at android.view.View.performClick(View.java:2408)
    02-27 18:28:41.993: E/AndroidRuntime(309): 	at android.view.View$PerformClick.run(View.java:8816)
    02-27 18:28:41.993: E/AndroidRuntime(309): 	at android.os.Handler.handleCallback(Handler.java:587)
    02-27 18:28:41.993: E/AndroidRuntime(309): 	at android.os.Handler.dispatchMessage(Handler.java:92)
    02-27 18:28:41.993: E/AndroidRuntime(309): 	at android.os.Looper.loop(Looper.java:123)
    02-27 18:28:41.993: E/AndroidRuntime(309): 	at android.app.ActivityThread.main(ActivityThread.java:4627)
    02-27 18:28:41.993: E/AndroidRuntime(309): 	at java.lang.reflect.Method.invokeNative(Native Method)
    02-27 18:28:41.993: E/AndroidRuntime(309): 	at java.lang.reflect.Method.invoke(Method.java:521)
    02-27 18:28:41.993: E/AndroidRuntime(309): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
    02-27 18:28:41.993: E/AndroidRuntime(309): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
    02-27 18:28:41.993: E/AndroidRuntime(309): 	at dalvik.system.NativeStart.main(Native Method)
    02-27 18:33:42.065: I/Process(309): Sending signal. PID: 309 SIG: 9
    quand je clique sur connexion rien ne se passe après un message d'erreur apparait: l'application ne répond pas

    (

  8. #8
    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
    Y a plein de trucs mélangés là....

    Commencons par le début: l'utilisation de AsyncTask...

    Il faut voir "AsyncTask" comme un thread à part.... voici le déroulement:


    Thread-UI:
    new task(); (au passage les noms de classes devraient toujours commencer par une majuscule en java).
    .execute();
    => task.onPreExecute()
    ... fin de l'execution... on attend les évenements UI suivants....

    Thread-Task:
    DATA = doInBackground()
    ... signalement au thread UI que la tâche est terminée...

    ThreadUI:
    task.onPostExecute(DATA) (c'est comme cela que l'on passe des données du thread de tâche au thread UI par la même occasion)


    Par contre, là, l'objet task n'implémente pas onPostExecute, c'est l'activité qui le fait => pas de lien par défaut.
    Solution: Bouger onPostExecute dans la tâche.




    Ensuite, les logs....
    Par pitié, remplacer tous les Log.e(xXXXxx, "......"+e.toString()); par : Log.e(xXXXxx, "......", e);

    On y verra déjà plus clair dans les exceptions.

    Mais sinon le code de récupération des données (doInBackground) fait toujours trop de try/catch et pas aux bons endroits. (les exceptions sont "catchées" mais le code continue comme si il n'y avait jamais eu d'exception => multiples erreurs).
    Du coup impossible d'essayer de résoudre toutes les exceptions, puisque seule la première fait sens.


    Revenons maintenant aux exceptions. La première dans le log est:
    Error in http connection java.net.SocketException: The operation timed out

    Ben voilà, déjà le truc turbine pendant 2 minutes (environ j'imagine, puisque à aucun moment on ne définit dans le HttpClient le timeout de connexion), pour dire "non désolé j'arrive pas à me connecter
    Ceci peut être du à plusieurs trucs:
    192.168.36.109 est une adresse privée locale (non routable donc). Elle n'est par conséquent accessible *que* par un device connecté sur le même réseau (en WiFi donc pour un smartphone puisque ceux ci ne disposent pas de RJ45 encore ). Les tests sont-ils faits sur un device connecté en WiFi ?

    Si on parle de l'émulateur, celui-ci n'est pas sur le même réseau ... il est sur un réseau partagé uniquement entre la machine hôte et l'émulateur. Il sera incapable d'accéder aux IPs de style 192.168.36.109 (non routable par défaut) à moins de rajouter dans l'émulateur la route adéquate.
    Si 192.168.36.109 représente la machine hote, il y a une solution: 10.0.2.2 (http://developer.android.com/tools/d...tworkaddresses). Sur le réseau privé entre hôte et émulateur, c'est l'adresse du premier.

    Voilà voilà...
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  9. #9
    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
    Je viens de déflorer mon blog ici histoire de vous proposer un tuto simple de base pour récupérer une liste de trucs depuis un web-service:

    http://www.developpez.net/forums/blo...vice-partie-1/
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  10. #10
    Débutant  
    Inscrit en
    Mars 2008
    Messages
    1 123
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 1 123
    Points : 170
    Points
    170
    Par défaut
    merci à vous je suis débutante en développement android
    donc si j'aurai des difficultés veuille bien m'aider

  11. #11
    Débutant  
    Inscrit en
    Mars 2008
    Messages
    1 123
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 1 123
    Points : 170
    Points
    170
    Par défaut
    svp est ce que vous pouvez m'aider de me donner un exemple complet pour que je puisse commencer
    je vous jure je n'ai rien fait dans le projet

Discussions similaires

  1. Réponses: 15
    Dernier message: 05/10/2016, 17h27
  2. Réponses: 1
    Dernier message: 30/11/2009, 22h50
  3. [Outlook] Impossible de récupérer mes messages ...
    Par Rumeurs dans le forum Outlook
    Réponses: 4
    Dernier message: 13/04/2006, 19h05
  4. XMLHttpRequest : Impossible de récupérer les données
    Par laurent_ifips dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 22/11/2005, 13h28
  5. [Excel] Récupérer des données d'une base Access
    Par FoxDeltaSierra dans le forum Excel
    Réponses: 8
    Dernier message: 03/09/2005, 10h22

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