BasicNetwork.performRequest:意外的响应代码500

时间:2017-04-20 07:51:06

标签: android server

我的Android Studio中有这个登录Java代码:

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);
    }

但每次我在Android日志控制台中收到此错误时都会:

 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

有人有想法,如何解决我的问题?因为我尝试了很多东西......无论如何它都不会工作...... 经历的事情是: 我经常测试服务器代码。当我尝试使用我的localwampserver的url的javacode时,它可以工作....当我用我的hostinger服务器的url尝试它时,它没有工作......在2个服务器中是相同的代码... < / p>

3 个答案:

答案 0 :(得分:3)

获取500响应代码意味着您的应用成功联系了服务器,但服务器本身遇到了意外错误。

请联系您的后端维护人员,了解服务器行为不当的原因,这很可能不是您可以在Android代码中修复的问题。

答案 1 :(得分:0)

看起来像服务器端错误,首先确保您的服务正常工作(例如使用Postman或任何其他客户端)。

如果问题仍然存在,您可以尝试使用Retrofit2而不是Volley(我个人更喜欢)

答案 2 :(得分:0)

我已经使用stringrequest从服务器获取响应并传递你的参数。

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);