Я в замешательстве и надеюсь, что вы поможете мне разрешить это сомнение. Я работаю с методом POST рука об руку с библиотекой Volley, сервер дает мне два типа ответов.
Первый
Если пользователь правильно вводит свои данные, сервер должен выдать мне данные пользователя.Как показано ниже.
Результат запроса пользователя.
Так запрос отправляется на сервер из кода.
public void getData() {
StringRequest postRequest = new StringRequest(Request.Method.POST, urlLogin,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonResponse = new JSONObject(response);
System.out.print(jsonResponse);
} catch (JSONException e) {
e.printStackTrace();
Log.d(TAG, String.valueOf(e));
Toast.makeText(Login.this,e.toString(),Toast.LENGTH_LONG).show();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
Log.d(TAG, String.valueOf(error));
Toast.makeText(Login.this,error.toString(),Toast.LENGTH_LONG).show();
}
}
) {
@Override
public String getBodyContentType() {
return "application/x-www-form-urlencoded; charset=UTF-8";
}
// here is params will add to your url using post method
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("Email", edtEmail.getText().toString());
params.put("Password", edtPassword.getText().toString());
return params;
}
};
postRequest.setRetryPolicy(new DefaultRetryPolicy(
10000,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
requestQueue = Volley.newRequestQueue(this);
requestQueue.add(postRequest);
DiskBasedCache cache = new DiskBasedCache(this.getCacheDir(), 500 * 1024 * 1024);
requestQueue = new RequestQueue(cache, new BasicNetwork(new HurlStack()));
requestQueue.start();
}
До этого момента все работало замечательно, проблема возникает, когда вы вводите некоторые данные неправильно, потому что сервер не отвечает ни на что абсолютно.
Информация, которая есть.Должно отображаться, вводит ли пользователь какую-либо ошибочную информацию.
Результат при вводе ошибочной информации
Проблема, с которой я сталкиваюсь, заключается в том, что при отправке тех или иных неверных данных серверне отвечает мне никакими типами данных, он только идет напрямую Response.ErrorListener ()
new Response.ErrorListener() { //com.android.volley.ServerError
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
Log.d(TAG, String.valueOf(error));
Toast.makeText(Login.this,error.toString(),Toast.LENGTH_LONG).show();
}
}
После прохождения отладки для этой ошибки сообщение «Приложение работает» продолжается, спасибо взаранее, и я надеюсь, что вы можете помочь мне исправить ошибку.