Exeption catch toujours executé

ZauSucre - 10 sept. 2017 à 15:08
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 10 sept. 2017 à 17:57
Bonjour,


Sur android je m’expérimente a faire une connexion avec une bdd via php (Serveur avec xampp sur mon pc)

Avec ce code (Voir http://codes-sources.commentcamarche.net/faq/10789-connecter-une-application-android-a-une-base-de-donnees ) :
Button button;
        final TextView erreurtxt = (TextView) findViewById(R.id.erreur);
        button = (Button) findViewById(R.id.register);
 
         
        button.setOnClickListener(
 
                new View.OnClickListener() {
                    public void onClick(View v) {
                        erreurtxt.setText("");
                        String result = "";
                        EditText pseudo = (EditText)findViewById(R.id.pseudo);
                        String vpseudo = pseudo.getText().toString();
                        EditText mail = (EditText)findViewById(R.id.mail);
                        String vmail = mail.getText().toString();
                        EditText mdp = (EditText)findViewById(R.id.mdp);
                        String vmdp = mdp.getText().toString();
 
                        ArrayList<NameValuePair> valeurs = new ArrayList<NameValuePair>();
                        valeurs.add(new BasicNameValuePair("pseudo",vpseudo));
                        valeurs.add(new BasicNameValuePair("mail",vmail));
                        valeurs.add(new BasicNameValuePair("mdp",vmdp));
 
                        try{
                            HttpClient httpclient = new DefaultHttpClient();
                            HttpPost httppost = new HttpPost("http://192.168.1.16/android/register.php");
                            httppost.setEntity(new UrlEncodedFormEntity(valeurs));
                            HttpResponse response = httpclient.execute(httppost);
                            HttpEntity entity = response.getEntity();
                            InputStream is = entity.getContent();
                        }catch(Exception e){
                            erreurtxt.setText("Erreur de connexion au serveur");
                        }
 
                    }
                }
        );



J'ai à chaque fois le message d'erreur dans catch.

Pourtant mon pc (Avec le serveur d'allumé) est connecté au même wifi que mon mobile.

Quelle pourrait être mon erreur ?

Merci

2 réponses

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 127
10 sept. 2017 à 16:29
Bonjour,

Pour en savoir plus sur ton erreur il faut l'afficher...

catch(Exception e) {
    e.printStackTrace();
    erreurtxt.setText("Erreur de connexion au serveur: "+e);
}
0
J'ai: org.JSONexception: value test of type
Donc je suppose que cela veux dire que test n'est pas un array ?
Donc mon problème est résolu presque résolu, merci
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 127
10 sept. 2017 à 16:47
A priori il t'en manque un bout, les infos les plus intéressantes sont derrière.

Exemple : org.json.JSONException: Value test of type java.lang.String cannot be converted to JSONObject

Par contre je ne vois pas où dans ton code tu utilises des fonctionnalités de JSON, il faudrait regarder la stack trace pour connaître la ligne où ça plante exactement.
0
ZauSucre > KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024
10 sept. 2017 à 16:50
"Par contre je ne vois pas où dans ton code tu utilises des fonctionnalités de JSON, il faudrait regarder la stack trace pour connaître la ligne où ça plante exactement"
Entre temps j'ai fais des ajouts, c'est pour ça
0
ZauSucre > KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024
10 sept. 2017 à 17:08
Re,

J'ai une erreur: org.JSONexception: No value for response
Avec en code de détection json:
String result = sb.toString();
            jObj = new JSONObject(result);

            String resultat = jObj.getJSONObject("response").getString("ok");
            if(resultat == "0"){
                erreurtxt.setText("REUSSI !");
            } else {
                erreurtxt.setText(resultat);
            }

La page php qui va avec:
<?php
include 'bdd.php';
if(isset($_POST['pseudo']) AND isset($_POST['mail']) AND isset($_POST['mdp'])) {
$pseudo = $_POST['pseudo'];
$mail = $_POST['mail'];
$mdp = sha1($_POST['mdp']);
$req = $bdd->prepare('INSERT INTO joueurs(pseudo, mail, mdp) VALUES(:pseudo, :mail, :mdp)');
$req->execute(array('pseudo' => $pseudo, 'mail' => $mail, 'mdp' => $mdp));
$response['ok'] = "0";
} else {
	$response['ok'] = "Tout les champs sont obligatoires.";
}
print_r(json_encode($response));
?>


Je débute dans se domaine.

Merci :)
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 127 > ZauSucre
10 sept. 2017 à 17:57
Je ne connais pas la programmation Android ni le PHP mais je dirais que quand tu fais
getJSONObject("response")
il ne trouve pas la valeur de "response".

Il faudrait que tu affiches ton String result pour savoir à quoi il ressemble et quelles sont les valeurs que tu peux récupérer dedans.
0
Rejoignez-nous