Exeption catch toujours executé

ZauSucre - 10 sept. 2017 à 15:08 - Dernière réponse : KX 15363 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 20 avril 2018 Dernière intervention
- 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
Afficher la suite 

6 réponses

Répondre au sujet
KX 15363 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 20 avril 2018 Dernière intervention - 10 sept. 2017 à 16:29
0
Utile
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);
}
Commenter la réponse de KX
0
Utile
4
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
KX 15363 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 20 avril 2018 Dernière intervention - 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.
ZauSucre > KX 15363 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 20 avril 2018 Dernière intervention - 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
ZauSucre > KX 15363 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 20 avril 2018 Dernière intervention - 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 :)
KX 15363 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 20 avril 2018 Dernière intervention > 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.
Commenter la réponse de ZauSucre

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.