Мое приложение требует логина. Он отлично работает для успешного входа в систему. Но в случае ошибки возвращается ошибка 400, но вызывается только прослушиватель ошибок. Я не могу прочитать код состояния. Я хочу прочитать код ответа об ошибке, чтобы показать конкретный тост ошибки пользователю.Не удалось получить код ответа на ошибку в volley
Мой код: -
String SignInURL = "https://xyz/abc";
StringRequest j1 = new StringRequest(Request.Method.POST,SignInURL, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(getApplicationContext(),"GG"+response,Toast.LENGTH_LONG).show();
try {
JSONObject jsonResponse = new JSONObject(response);
Log.e("QWER",""+jsonResponse);
Toast.makeText(getApplicationContext(),""+jsonResponse,Toast.LENGTH_LONG).show();
sp = getSharedPreferences(AUTHDATA, Context.MODE_PRIVATE);
SharedPreferences.Editor edit = sp.edit();
edit.putString("access_token",jsonResponse.getString("access_token"));
edit.putString("token_type",jsonResponse.getString("token_type"));
edit.putString("refresh_token",jsonResponse.getString("refresh_token"));
edit.putString("scope",jsonResponse.getString("scope"));
Log.e("ACCESS_TOKEN",jsonResponse.getString("access_token"));
if(jsonResponse.getString("access_token").equals("")){
edit.putBoolean("login",false);
}else{edit.putBoolean("login",true);}
Intent i = new Intent(getApplicationContext(), HomeActivity.class);
startActivity(i);
finish();
} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(),
"Error: " + e.getMessage(),
Toast.LENGTH_LONG).show();
hidepDialog();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(),"Invalid credentials", Toast.LENGTH_LONG).show();
hidepDialog();
}
}){
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
HashMap<String, String> hashMap = new HashMap<String, String>();
hashMap.put("Content-Type","application/json; charset=utf-8");
return hashMap;
}
};
RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());
requestQueue.add(j1);
вы получаете исключение в прослушивателе ответ, что блок улова догоняет за исключением 400. – W4R10CK
Nopes, на ErrorResponse обрабатывает его. Я получаю тост «Недействительные учетные данные», который находится в области ErrorResponse –
. Добавьте значение ур JSON здесь – W4R10CK