J'ai ce code Java de connexion dans mon Android Studio:

private void loginUser(){
        pd = ProgressDialog.show(LoginActivity.this, "", "Loading...");
        StringRequest stringRequest = new StringRequest(Request.Method.POST, LOGIN_URL,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        try {
                            JSONObject jsonResponse = new JSONObject(response);
                            System.out.println("JSON RESPONSE: " + jsonResponse.toString());
                            boolean success = jsonResponse.getBoolean("success");
                            if (success) {
                                launchHomeScreen();
                                pd.dismiss();
                                Toast.makeText(LoginActivity.this,"Welcome back " + username,Toast.LENGTH_LONG).show();

                                SharedPreferences sharedPref = getSharedPreferences("loginDatas", Context.MODE_PRIVATE);

                                SharedPreferences.Editor editor = sharedPref.edit();
                                editor.putString("username", username);
                                editor.putString("password", password);
                                editor.apply();
                            }
                            else {
                                loginButton.setBackgroundColor(0x73000000);
                                Toast.makeText(LoginActivity.this,"Wrong Username or Password!",Toast.LENGTH_LONG).show();
                                pd.dismiss();
                            }
                        }
                        catch (JSONException e) {
                            loginButton.setBackgroundColor(0x73000000);
                            e.printStackTrace();
                            pd.dismiss();
                            Toast.makeText(LoginActivity.this,response,Toast.LENGTH_LONG).show();
                        }
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        loginButton.setBackgroundColor(0x73000000);
                        pd.dismiss();
                        System.out.println("Error: " + error);
                    }
                }){
            @Override
            protected Map<String,String> getParams(){
                Map<String,String> params = new HashMap<>();
                params.put(KEY_USERNAME,username);
                params.put(KEY_PASSWORD,password);
                return params;
            }

        };
        RequestQueue requestQueue = Volley.newRequestQueue(this);
        requestQueue.add(stringRequest);
    }

Mais chaque fois que j'obtiens cette erreur dans ma console Android Log:

 I tried so many things but everytime I try it, I get back: 04-20 07:44:18.463 3326-2366/com.lolol.gg E/Volley: [294] BasicNetwork.performRequest: Unexpected response code 500 for http://lollipop.xyz/login.php
    04-20 07:44:18.514 3326-3326/com.lolol.ggI/System.out: Error: com.android.volley.ServerError

Quelqu'un a-t-il une idée, comment résoudre mon problème? Parce que j'ai essayé beaucoup de choses ... ça ne marchera pas de toute façon ... Le problème est: J'ai testé le code serveur très souvent cela fonctionne. Quand j'essaye le javacode avec l'url de mon localwampserver ça marche .... Quand je l'essaye avec l'url de mon serveur hostinger ça n'a pas fonctionné ... Dans les 2 serveurs sont les mêmes codes ...

2
mc.b 20 avril 2017 à 10:51

3 réponses

Meilleure réponse

L'obtention d'un code de réponse HTTP de 500 signifie que votre application a réussi à contacter le serveur, mais que le serveur lui-même a rencontré une erreur inattendue.

Contactez votre responsable du backend pour voir pourquoi le serveur se comporte mal, ce n'est probablement pas un problème que vous pouvez résoudre dans votre code Android.

4
npace 20 avril 2017 à 07:58

J'ai utilisé stringrequest pour obtenir une réponse du serveur et transmettre vos paramètres.

StringRequest stringRequest = new StringRequest(Request.Method.POST, URL, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            try {JSONObject jsonObject = new JSONObject(response);
            } catch (JSONException ignored) {
            }
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError volleyError) {
            if (volleyError instanceof TimeoutError) {
            }
        }
    }) {
        @Override
        public Map<String, String> getParams() throws AuthFailureError {
            HashMap<String, String> headers = new HashMap<>();
            headers.put("name", "Droider");
            return headers;
        }

        @Override
        public Priority getPriority() {
            return Priority.IMMEDIATE;
        }
    };
    ApplicationController.getInstance().addToRequestQueue(stringRequest);
0
pradeep 20 avril 2017 à 08:08

Cela ressemble à une erreur côté serveur, assurez-vous d'abord que votre service fonctionne (en utilisant Postman par exemple ou n'importe quel client de repos).

Si le problème persiste, vous pouvez essayer d'utiliser Retrofit2 au lieu de Volley (ce que je préfère personnellement)

0
Yogi Bear 20 avril 2017 à 08:03