2017-04-20 212 views
1

我在Android Studio中有这样的登录Java代码:BasicNetwork.performRequest:意外的响应代码500

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服务器的网址它没有工作...在2服务器是相同的代码...

+0

给我的网址,而params – pradeep

+0

@pradeep URL是100%正确的,在它的代码工作至100%......但我不知道怎么给你PARAMS –

+0

你加入这个您的Manifest文件中的权限'<使用权限android:name =“android.permission.INTERNET”/>' – Naz141

回答

0

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

联系您的后端维护人员,看看服务器为什么行为不端,这很可能不是您可以在Android代码中修复的问题。

+0

我已经测试过服务器代码,它经常工作。当我尝试与我的localwampserver的网址代码它的作品....当我尝试与我的hostinger服务器的网址它没有工作...在2台服务器是相同的代码... –

0

看起来像一个服务器端的错误,首先确保你的服务工作(使用Postman的例子或任何休息客户端)。

如果问题仍然存在,你可以尝试使用Retrofit2而不是排球(我个人比较喜欢)

0

我已经使用stringrequest摆脱服务器的响应,并通过您的PARAMS。

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); 
相关问题