2016-05-17 4 views

ответ

1

При настройке нового запроса залп:

StringRequest stringRequest = new StringRequest(Request.Method.GET, url, 
     new Response.Listener<String>() { 
     @Override 
     public void onResponse(String response) { 
     // act upon a valid response 
     } 
    }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
     // Handle error 
     } 
    }); 

Обратите внимание, что вы передаете Response.ErrorListener. Когда возникает ошибка, например, например, 204, обратный вызов onErrorResponse(VolleyError) вызывается с ошибкой экземпляра VolleyError с соответствующей информацией об ошибке, переданной ему.

Таким образом, в этом обратном вызове вы должны проверить наличие ошибки и предпринять соответствующие действия.

new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      if(error instanceof TimeoutError){ 
      // Take action when timeout happens 
      } 
     } 
    } 

ПРИМЕЧАНИЕ: Когда тайм-аут происходит, экземпляр VolleyError фактически экземпляр TimeoutError подкласс VolleyError. Поэтому мы проверяем, если ошибка вызвана является тайм-аут, используя instanceof

Перечня подразделов классов VolleyError доступен здесь: http://afzaln.com/volley/com/android/volley/VolleyError.html

Примера приведен для StringRequest типа, но этот метод является одинаковым для VolleyObjectRequest других типов.

+0

Прежде всего спасибо за четко определенный ответ. Я так понимаю, но эта методология ошибочна, я думаю. Потому что, если на самом деле происходит тайм-соединение, я пропущу его. Эта логика делает это; исключение таймаута -> нет содержания нет содержания -> нет содержания – Arda

+0

О, я понимаю сейчас. 'Volley' неправильно интерпретирует 204 для' TimeoutError'. Дурак я! Я совершенно неправильно понял это. – Karthiksrndrn

+0

Возможный дубликат. Проверьте [этот выход] (http://stackoverflow.com/questions/27392813/android-volley-library-not-working-with-204-and-empty-body-response) – Karthiksrndrn