Intereting Posts
BitmapFactory.Options дает 0 ширину и высоту Ошибка с setPixels Как отсортировать recylerview по наименьшему числу / String android studio Определите «Косвенный подкласс» в Android Внедрение SearchView в соответствии с рекомендациями по разработке материалов Активность, перемещающаяся снизу вверх, но фоновая активность не должна перемещаться Переопределить анимацию для notifyItemChanged в RecyclerView.Adapter Android AlarmManager: есть ли способ отменить ВСЕ установленные тревоги? Google-services.json для разных продуктовFlavors Переход от общего элемента не работает при первой загрузке с Picasso Поймать событие onTouch родителем, обработать его и передать детям Может ли VideoView отсоединяться и повторно подключаться без остановки потока? Андроид: какая практика лучше для использования CoordinatorLayout OpenOptionsMenu () не будет работать в appcompat-v7 22.1.0 или новее Почему Cordova / Phonegap добавляет 8 в мой код версии Android?

Ошибка руля Volley

Я хочу обработать и показать сообщение в onErrorResponse

Ниже мой код.

 String url = MainActivity.strHostUrl+"api/delete_picture"; jobjDeleteImage = new JsonObjectRequest(Request.Method.POST, url, jobj, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { Log.e("Image response", response.toString()); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.e("Volly Error", error.toString()); NetworkResponse networkResponse = error.networkResponse; if (networkResponse != null) { Log.e("Status code", String.valueOf(networkResponse.statusCode)); } } }); 

Я хочу обрабатывать com.android.volley.TimeoutError а также некоторые другие коды ошибок, такие как 404, 503 и т. Д. И сообщение Toast здесь.

Solutions Collecting From Web of "Ошибка руля Volley"

NetworkResponse имеет значение null, поскольку в TimeoutError данные не поступают с сервера – следовательно, время ожидания. Вместо этого вам нужны общие строки на стороне клиента, которые будут отображаться при возникновении одного из этих событий. Вы можете проверить тип VolleyError с помощью instanceof, чтобы различать типы ошибок, так как у вас нет сетевого ответа для работы – например:

 @Override public void onErrorResponse(VolleyError error) { if (error instanceof TimeoutError || error instanceof NoConnectionError) { Toast.makeText(context, context.getString(R.string.error_network_timeout), Toast.LENGTH_LONG).show(); } else if (error instanceof AuthFailureError) { //TODO } else if (error instanceof ServerError) { //TODO } else if (error instanceof NetworkError) { //TODO } else if (error instanceof ParseError) { //TODO } } 

У вас есть TimeoutError и NoConnectionError. Супер полезно.

 /** * Http 访问失败* * */ @Override public void error(VolleyError error){ NetworkResponse response = error.networkResponse; if(response != null && response.data != null){ Toast.makeText(context,"errorMessage:"+response.statusCode, Toast.LENGTH_SHORT).show(); }else{ String errorMessage=error.getClass().getSimpleName(); if(!TextUtils.isEmpty(errorMessage)){ Toast.makeText(context,"errorMessage:"+errorMessage, Toast.LENGTH_SHORT).show(); } } }//public void error(VolleyError error) is over! zlb