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

API standards et tierces Android Discussion :

Probléme de connexion d'une application android vers une BD mysql


Sujet :

API standards et tierces Android

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2011
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 8
    Points : 8
    Points
    8
    Par défaut Probléme de connexion d'une application android vers une BD mysql
    Bonjour tout le monde,

    Je suis entréain de développer une application qui se connecte sur un serveur mysql, en utilisant JSON, j'ai commencé par créer mon webservice php et ça marche bien.

    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
     
    <?php 
     
    // array for JSON response 
    $response = array(); 
     
    // check for required fields 
    if (isset($_POST['num'])){                 
     
        $numsim = $_POST['num'];
     
     
        // Connecting to mysql database 
        $con = mysql_connect("localhost", "root", "") ;
     
        // Selecing database 
        $db = mysql_select_db("test") ;
     
        // mysql inserting a new row 
        $result=mysql_query("INSERT INTO backup(num) VALUES('$num')"); 
     
        if ($result) { 
            // successfully inserted into database 
            $response["success"] = 1; 
            $response["message"] = "successfully created."; 
     
            // echoing JSON response 
            echo json_encode($response); 
        } else { 
            // failed to insert row 
            $response["success"] = 0; 
            $response["message"] = "Oops! An error occurred."; 
     
            // echoing JSON response 
            echo json_encode($response); 
        } 
    } else { 
        // required field is missing 
        $response["success"] = 0; 
        $response["message"] = "Required field(s) is missing"; 
     
        // echoing JSON response 
        echo json_encode($response); 
    } 
    ?>

    Puis j'ai crée mon application android, quand j'essaie de me connecter sur le webservice, j'écris le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    private static String url =  "http://localhost/android_connect/create_new_backup.php";  
     
     
     
    List<NameValuePair> params = new ArrayList<NameValuePair>(); 
    params.add(new  BasicNameValuePair("num", num)); 
     
    // getting JSON Object 
    JSONObject json = jsonParser.getJSONFromUrl(url, params);
    la fonction getJSONFromUrl

    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
     
     
    public JSONObject getJSONFromUrl(String url, List<NameValuePair> params) { 
     
            // Making HTTP request 
            try { 
                // defaultHttpClient 
                DefaultHttpClient httpClient = new DefaultHttpClient(); 
     
                HttpPost httpPost = null;
                httpPost = new HttpPost (url);
                Log.d("Create Response", httpPost.toString()); 
     
                httpPost.setEntity(new UrlEncodedFormEntity(params)); 
                Log.d("Create Response", httpPost.toString());
     
                HttpResponse httpResponse = httpClient.execute(httpPost); 
                HttpEntity httpEntity = httpResponse.getEntity(); 
                is = httpEntity.getContent(); 
     
            } catch (UnsupportedEncodingException e) { 
                e.printStackTrace(); 
            } catch (ClientProtocolException e) { 
                e.printStackTrace(); 
            } catch (IOException e) { 
                e.printStackTrace(); 
            } 
     
            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(); 
                json = sb.toString(); 
                Log.e("JSON", json); 
            } catch (Exception e) { 
                Log.e("Buffer Error", "Error converting result " + e.toString()); 
            } 
            try { 
                JSONArray jsonArray = new JSONArray(json); 
                for(int i=0;i<jsonArray.length();i++) { 
                     jObj = jsonArray.getJSONObject(i); 
                     Log.i("testing", jObj.getString("tag")); 
                     Log.i("testing", jObj.getString("success")); 
                     Log.i("testing", jObj.getString("error")); 
                 } 
            } catch (JSONException e) { 
                // TODO Auto-generated catch block 
                e.printStackTrace(); 
            } 
            // return JSON String 
            return jObj; 
     
        }

    sachant que j'ai ajouté dans le manifest.xml la permission accés à l'internet
    mais au moment ou j'essaie de connecter il m'affiche une erreur

    unfortunately, application has stopped

    d'aprés le LogCat, l'erreur c au niveau

    HttpResponse httpResponse = httpClient.execute(httpPost);

    pouvez vous m'aider à résoudre le probléme
    j'ai vérifié bien que mon serveur wamp est online
    j'ai beaucoup perdu du temps dans ce probléme

    merci de m'aider

  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
    Oui mais c'est quoi l'erreur ?
    Il y a une stacktrace dans le LogCat, ca serait interessant de la voir...

    Sinon, tout le code de parsing du stream peut etre remplacé par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            HttpEntity httpEntity = httpResponse.getEntity();
            String stringResult = EntityUtils.toString(httpEntity,"ISO-8859-1");
    Ensuite, oubliez les e.printStackTrace();
    Toujours choisir le Log
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Log.e(MY_TAG,"Exception sur tel truc:",ex);
    Sinon, je subodore un appel réseau dans le thread UI....
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/12/2012, 09h30
  2. Réponses: 3
    Dernier message: 27/06/2012, 13h49
  3. Réponses: 0
    Dernier message: 04/08/2010, 14h02
  4. Réponses: 5
    Dernier message: 22/05/2008, 14h42
  5. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24

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