我的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>
答案 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);