Connexion Android avec base de donne [Résolu/Fermé]

Signaler
-
 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();
          }
        
       

             }
             });
  
 }
}

8 réponses

Messages postés
332
Date d'inscription
lundi 28 avril 2014
Statut
Membre
Dernière intervention
6 mars 2016
253
C'est quoi l'erreur que te donne le logcat ?
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.
Messages postés
332
Date d'inscription
lundi 28 avril 2014
Statut
Membre
Dernière intervention
6 mars 2016
253
Oui et bien dans ce cas tu doit avoir une trace dans le logcat. Le logcat, je ne te parle pas de ton programme.
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)
Messages postés
332
Date d'inscription
lundi 28 avril 2014
Statut
Membre
Dernière intervention
6 mars 2016
253
Tu as bien déclaré la permission internet dans ton manifest ?
vous parlez à androidManifest ?
oui j'ajoute <activity android:name="classe"></activity>
Messages postés
332
Date d'inscription
lundi 28 avril 2014
Statut
Membre
Dernière intervention
6 mars 2016
253
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
je ne connais pas , mais je déjà fait des autre applications connecter a base des donnes et se marche bien
Messages postés
332
Date d'inscription
lundi 28 avril 2014
Statut
Membre
Dernière intervention
6 mars 2016
253
Ba si ça marche bien t'as pas besoin d'aide alors :)
jusqu'à ce moment la , je ne connais pas l'erreur
mais dans tous le cas merci pour vous
Messages postés
14808
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
18 septembre 2020
2 535
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"/>
bonjour BunoCS
merci infiniment
le code marche bien