我如何在android中检查服务器不回复?

时间:2014-10-03 06:42:41

标签: android json

我正在构建一篇阅读像TechChurn这样的Android应用程序的文章。我以json的形式从服务器获取数据。

我正在从json解析标题,作者姓名和文章内容,并在列表视图中显示它。 我面临的问题是,当服务器端没有响应时,我需要一个toast,这意味着如果我从服务器请求一些数据,只是假设时间服务器已关闭而且没有回复时间应用程序可以吐司 这是我的代码 -

JsonArrayRequest movieReq = new JsonArrayRequest(URL,
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);

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

或者你可以简单地尝试捕获IOexception:

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