Connexion Android avec base de donne

Résolu
SK -  
 SK -
Bonjour
je suis débutante en android et je trouve un problème au niveau "run" toujours affiche un message "sorry"
vous pouvez m'aider
et merci
package com.example.espaceenseignant;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
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 org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {
 private static final String strURL = "http://10.0.2.2/webservice/connecter.php";
 // private String result ;
  
  private JSONArray  jArray;
  private JSONObject  json_data;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
   Button connexion = (Button) findViewById(R.id.button1);
         final EditText iden = (EditText) findViewById(R.id.editText1);
         final EditText Nom = (EditText) findViewById(R.id.editText2);
         connexion.setOnClickListener(new View.OnClickListener() {
          
             public void onClick(View v) {
              String result =null;
              InputStream is = null;
              StringBuilder sb = new StringBuilder();
              ArrayList<NameValuePair> nameValuePairs=new ArrayList<NameValuePair> ();
              nameValuePairs.add(new BasicNameValuePair("identifiant",Nom.getText().toString()));

              try{
              
      
               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);
       
         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 in http connection " + e.toString());
           }
        String essai=result.substring(0, 4) ;
        try {
         if (result.matches("<br >")){
           essai=result.substring(0, 2) ; 
         }
         JSONArray jArray = new JSONArray(result);
         int b=jArray.length();
         
          
                 
            JSONObject json_data = jArray.getJSONObject(0);
        
         
            String nom1 = json_data.getString("cin").toString();
            //String login = json_data.getString("login").toString();
            if (nom1.equals(iden.getText().toString()) ){
             
             Intent principale =new Intent(MainActivity.this,classe.class);
             startActivity(principale);
         
            }
            else {
             
             Toast.makeText(MainActivity.this, "nom introuvable ", Toast.LENGTH_LONG).show();
            }
         
         
          }catch(JSONException e){
         //  Log.e("log_tag", "Error parsing data " + e.toString());
           Toast.makeText(MainActivity.this, "Verifier L'identifiant ", Toast.LENGTH_LONG).show();
          }
        
       

             }
             });
  
 }
}
A voir également:

8 réponses

Nhhi Messages postés 384 Statut Membre 300
 
C'est quoi l'erreur que te donne le logcat ?
0
SK
 
Au niveau de programme il n’y a pas d'erreur
mai seulement en run , il affiche après cliquer sur le boutant connecter
" the application espaceenseignant(processcom.example.espaceenseignant) has stopped unexpectedly.please try again.
0
Nhhi Messages postés 384 Statut Membre 300
 
Oui et bien dans ce cas tu doit avoir une trace dans le logcat. Le logcat, je ne te parle pas de ton programme.
0
SK
 
Ce tout qui s'affiche à logCat


02-28 07:20:20.360: W/KeyCharacterMap(274): No keyboard for id 0
02-28 07:20:20.360: W/KeyCharacterMap(274): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
02-28 07:20:34.800: E/log_tag(274): Error in http connection java.net.SocketException: Permission denied
02-28 07:20:34.800: E/log_tag(274): Error in http connection java.lang.NullPointerException
02-28 07:20:34.800: D/AndroidRuntime(274): Shutting down VM
02-28 07:20:34.800: W/dalvikvm(274): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
02-28 07:20:34.840: E/AndroidRuntime(274): FATAL EXCEPTION: main
02-28 07:20:34.840: E/AndroidRuntime(274): java.lang.NullPointerException
02-28 07:20:34.840: E/AndroidRuntime(274): at com.example.espaceenseignant.MainActivity$1.onClick(MainActivity.java:78)
02-28 07:20:34.840: E/AndroidRuntime(274): at android.view.View.performClick(View.java:2408)
02-28 07:20:34.840: E/AndroidRuntime(274): at android.view.View$PerformClick.run(View.java:8816)
02-28 07:20:34.840: E/AndroidRuntime(274): at android.os.Handler.handleCallback(Handler.java:587)
02-28 07:20:34.840: E/AndroidRuntime(274): at android.os.Handler.dispatchMessage(Handler.java:92)
02-28 07:20:34.840: E/AndroidRuntime(274): at android.os.Looper.loop(Looper.java:123)
02-28 07:20:34.840: E/AndroidRuntime(274): at android.app.ActivityThread.main(ActivityThread.java:4627)
02-28 07:20:34.840: E/AndroidRuntime(274): at java.lang.reflect.Method.invokeNative(Native Method)
02-28 07:20:34.840: E/AndroidRuntime(274): at java.lang.reflect.Method.invoke(Method.java:521)
02-28 07:20:34.840: E/AndroidRuntime(274): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
02-28 07:20:34.840: E/AndroidRuntime(274): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
02-28 07:20:34.840: E/AndroidRuntime(274): at dalvik.system.NativeStart.main(Native Method)
0
Nhhi Messages postés 384 Statut Membre 300
 
Tu as bien déclaré la permission internet dans ton manifest ?
0
SK
 
vous parlez à androidManifest ?
oui j'ajoute <activity android:name="classe"></activity>
0
Nhhi Messages postés 384 Statut Membre 300
 
Je ne te parle pas de l'activité, je te parle de la permission qui permet d'autoriser ton appli à accéder à internet.
Parce que d'après cette ligne ça pourrait être la raison de l'erreur.
02-28 07:20:34.800: E/log_tag(274): Error in http connection java.net.SocketException: Permission denied
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
SK
 
je ne connais pas , mais je déjà fait des autre applications connecter a base des donnes et se marche bien
0
Nhhi Messages postés 384 Statut Membre 300
 
Ba si ça marche bien t'as pas besoin d'aide alors :)
0
SK
 
jusqu'à ce moment la , je ne connais pas l'erreur
mais dans tous le cas merci pour vous
0
BunoCS Messages postés 16550 Statut Modérateur 3 919
 
Hello,

Comme le dit Nhhi, le problème est là:
02-28 07:20:34.800: E/log_tag(274): Error in http connection java.net.SocketException: Permission denied 

Comme l'a également dit Nhhi, il faut donner la permission à ton applicaition d'accéder à Internet. Pour ceci, tu as une ligne à rajouter dans ton Manifest:
<uses-permission android:name="android.permission.INTERNET"/>
0
SK
 
bonjour BunoCS
merci infiniment
le code marche bien
0