Je pense que JSONException ne fonctionne que lorsque ma demande échoue mais lorsque la requête est valide (nom d'utilisateur valide, mot de passe), elle doit me rediriger vers une autre activité, mais une exception JSON s'affiche.JSONException en cas de succès
Affiche la chaîne JSON reçue du serveur plutôt que de me rediriger vers une autre activité.
Ceci est ma fonction onResponse
@Override
public void onResponse(String response){
try {
JSONObject volleyResponse = new JSONObject(response);
boolean success = volleyResponse.getBoolean("success");
String message = volleyResponse.getString("message");
String UUID = volleyResponse.getString("unique_user_id");
String LLOGIN = volleyResponse.getString("last_login");
String RDATE = volleyResponse.getString("registration_date");
String MONEY = volleyResponse.getString("money");
if(success){
Intent intent = new Intent(Authentication.this, Mainpage.class);
intent.putExtra(KEY_USERNAME, strUsername);
intent.putExtra(KEY_UUID, UUID);
intent.putExtra(KEY_LLOGIN, LLOGIN);
intent.putExtra(KEY_RDATE, RDATE);
intent.putExtra(KEY_MONEY, MONEY);
startActivity(intent);
}
} catch(JSONException e) {
response = response.replace("\"", "");
response = response.replace("status:false,message:", "");
response = response.replace("{", "");
response = response.replace("}", "");
messageText.setText(response);
}
}
Réponse JSON quand il est succès:
{"unique_user_id":"4e99a28a-0cb2-30a9-ac51-ccd4629bcef1","last_name":"therealaxis","password":"$2a$10$9qRjW\/vJreCQg3u5dO6eW.8PhZBTpGaPNK5qRIYP.XTx2PVY1yrOi","last_login":"1 week ago","registration_date":"1 week ago","money":"100.00","success":true}
Votre réponse n'a pas de chaîne de message, donc une exception JSON est levée – petul
Elle a une chaîne de message quand elle a échoué, mais en cas de succès elle vous montre simplement vos statistiques, et une vraie clé de succès [booléen]. –
Oui, mais vous essayez toujours d'accéder à l'attribut de message. Même si ça a réussi. À ce moment-là, il saute directement dans votre bloc catch – petul