2014-10-03 1 views
0

TechChurn과 같이 안드로이드 응용 프로그램을 읽는 기사를 작성 중입니다. json의 형태로 서버에서 데이터를 가져옵니다.어떻게 안드로이드에서 회신하지 않는 서버를 확인할 수 있습니까?

json의 제목, 저자 이름 및 기사 콘텐츠를 구문 분석하고이를 목록보기에 표시하고 있습니다. 내가 직면하고있는 문제는 서버에서 응답이 없을 때 축배가 필요하다는 것입니다. 서버에서 데이터를 요청하고 그 시간 서버가 다운 된 것으로 가정하고 그 시간에 응답하지 않는 응용 프로그램은 토스트가 될 수 있습니다. 여기 내 코드입니다. -

+3

'response.getStatus()'가 의미있는 정보. 조사 좀 해봐. –

답변

0

Response.ErrorListener을 사용하는 것은 어떻습니까?

Response.Listener<JSONArray> listener = new Response.Listener<JSONArray>() 
    { 
     @Override 
     public void onResponse(JSONArray response) { 
      Log.d(TAG, response.toString()); 
      // Parsing json 
      for (int i = 0; i < response.length(); i++) { 
      try { 
       JSONObject obj = response.getJSONObject(i); 
       Movie movie = new Movie(); 
       movie.setTitle(obj.getString("title")); 
       movie.setDate(obj.getString("date")); 
       movieList.add(movie); 

      // the rest of your logic ... 
     } 
    }; 

    Response.ErrorListener errorListener = new Response.ErrorListener() 
    { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      Toast.makeText(getApplicationContext(), "Oops!", Toast.LENGTH_LONG).show(); 
     } 
    }; 

    JsonArrayRequest movieReq = new JsonArrayRequest(URL, listener, errorListener); 
+0

여기서 response.getStatus는 오류를 발생시킵니다. –

+0

내 대답이 변경되었습니다. 확인하십시오. –

+0

이 작업을했지만 작동 중! \ –

0

또는 당신은 단순히 IOException가 잡으려고 시도 할 수 있습니다 :이 약

} catch (IOException 
     Log.e(TAG, "Failed to register on attempt " + i + ":" + e); 
      if (i == MAX_ATTEMPTS) { 
      break; 
       } 
+0

이것은 작동하지 않습니다! 정확히. 나는 메시지를 건배했다. (i == MAX_ATTEMPTS) 그러나 나는 그것을 실행할 때 토스트가 아니다. –

관련 문제