2016-10-26 3 views
0

Привет, ребята, я не знаю, как прочитать фактическое подробное сообщение об ошибке с сервера, все, что я получаю, это E/Volley: [73767] BasicNetwork.performRequest: Неожиданный код ответа 500 для https://xxxx.com/xxxxx Я видел людей, добавляющих слушателя onErrorResponse, но мой не работает, поэтому я явно что-то пропустил, ниже мой код, любая помощь приветствуется.Как читать Volley Неожиданный код ответа 500

Запрос:

JSONObject jsonFavorites = new JSONObject(); 
         String userId = Integer.toString(2); 
         String waypointID = Integer.toString(eventInfo.waypointId); 
         String waypointType = Integer.toString(eventInfo.stopType); 
         try { 
          jsonFavorites.put("action", favoriteAction); 
          jsonFavorites.put("uid", userId); 
          jsonFavorites.put("waypointid", waypointID); 
          jsonFavorites.put("waypoint_type", waypointType); 
          //fetchData(bounds); 
         } catch (Exception e) { 

         } 
         try{ 
          GetUserFavoritesRequest favoritesRequest = new GetUserFavoritesRequest(jsonFavorites, new Response.Listener<String>() { 
           @Override 
           public void onResponse(String response) { 
            //Parse the response that was received from the server. 
            Log.d("Maps:", " Parsing Response"); 
            try { 
             Log.i("tagconvertstr", "[" + response + "]"); 
             //List<String> allFavorites = new ArrayList<String>(); 

             JSONArray cast = new JSONArray(response); 

             if(userFavoritewaypointId.contains(eventInfo.waypointId)){ 
              favoriteAction = "remove"; 
              infoFavoriteButton.setImageResource(R.drawable.favorites_disabled); 
             }else{ 
              favoriteAction = "add"; 
              infoFavoriteButton.setImageResource(R.drawable.favorites); 
             } 
             finished = true; 
            } catch (JSONException e) { 
             //adding or removing favorites was unsuccessful. 
             Log.d("Maps:", " Failed getting a response from server for adding or removing favorites"); 
             e.printStackTrace(); 

             //Set the finished flag to true to let everyone know that we 
             //finished receiving a response from the server. 
             finished = true; 
            } 
           } 
          }, new Response.ErrorListener() { 
           @Override 
           public void onErrorResponse(VolleyError error) { 
            //Parse the response that was received from the server. 
            NetworkResponse networkResponse = error.networkResponse; 
            if (networkResponse != null) { 
             Log.e("Volley", "Error. HTTP Status Code:"+networkResponse.statusCode); 
            } 

            if (error instanceof TimeoutError) { 
             Log.e("Volley", "TimeoutError"); 
            }else if(error instanceof NoConnectionError){ 
             Log.e("Volley", "NoConnectionError"); 
            } else if (error instanceof AuthFailureError) { 
             Log.e("Volley", "AuthFailureError"); 
            } else if (error instanceof ServerError) { 
             Log.e("Volley", "ServerError"); 
            } else if (error instanceof NetworkError) { 
             Log.e("Volley", "NetworkError"); 
            } else if (error instanceof ParseError) { 
             Log.e("Volley", "ParseError"); 
            } 
            Log.d("Maps:", " Error: " + error.getMessage()); 
            finished = true; 
           } 
          }); 
          RequestQueue queue = Volley.newRequestQueue(getActivity()); 
          queue.add(favoritesRequest); 

         } catch (Exception e) { 
          //We failed to start a login request. 
          Log.d("Maps:", " Failed to start response for adding or removing favorites"); 

          //Set the finished flag to true to let everyone know that we 
          //finished receiving a response from the server. 
          finished = true; 
         } 

GetUserFavoritesRequest.java

public class GetUserFavoritesRequest extends StringRequest { 
    private static final String LOGIN_REQUEST_URL = "https://xxxx.com/xxxxx"; 
    private Map<String, String> params; 

    public GetUserFavoritesRequest(JSONObject getFavorites, Response.Listener<String> listener, Response.ErrorListener errorListener){ 
     super(Request.Method.POST, LOGIN_REQUEST_URL, listener, null); 
     params = new HashMap<>(); 

     try { 
      if(getFavorites.get("action").toString().equals("get")){ 
       Log.d("Maps: ", "Looks like we are retrieving a list of favorite waypoints"); 
       params.put("action", getFavorites.get("action").toString()); 
       params.put("uid", getFavorites.get("uid").toString()); 
      }else if(getFavorites.get("action").toString().equals("add")){ 
       Log.d("Maps: ", "Looks like we are adding a favorite waypoint" + getFavorites); 
       params.put("action", getFavorites.get("action").toString()); 
       params.put("uid", getFavorites.get("uid").toString()); 
       params.put("waypointid", getFavorites.get("waypointid").toString()); 
       params.put("waypoint_type", getFavorites.get("waypoint_type").toString()); 
      }else if(getFavorites.get("action").toString().equals("remove")) { 
       Log.d("Maps: ", "Looks like we are removing a favorite waypoint" + getFavorites); 
       params.put("action", getFavorites.get("action").toString()); 
       params.put("uid", getFavorites.get("uid").toString()); 
       params.put("waypointid", getFavorites.get("waypointid").toString()); 
       params.put("waypoint_type", getFavorites.get("waypoint_type").toString()); 
      } 
     }catch (Exception e){ 

     } 
    } 

    @Override 
    public Map<String, String> getParams() { 
     return params; 
    } 
} 
+0

вы должны использовать модификацию вместо залпа. – Nenco

+0

ах ?! Я использовал залп, потому что он был действительно популярен. я буду исследовать модификацию, чтобы посмотреть, что это все о :), спасибо за предложение! – rapid3642

ответ

1

Я думаю, что там может быть ошибка в конструкторе GetUserFavoritesRequest в

super(Request.Method.POST, LOGIN_REQUEST_URL, listener, null); 

изменение нулевой до errorListener.

+0

OMG да безупречный !! Спасибо! Я не осведомлен о конструкторах, так что это был очень хороший улов. Я двигаюсь в правильном направлении, но я все еще не могу прочитать полное сообщение об ошибке. Вот что я получаю. E/Volley: [83012] BasicNetwork.performRequest: Неожиданный код ответа 500 для https://xxxx.com/xxxxx E/Volley: Ошибка. Код состояния HTTP: 500 E/Volley: ServerError D/Maps :: Ошибка: null – rapid3642

+1

попробуйте это Log.d («Карты:», «Ошибка:» + новая строка (error.networkResponse.data)); finished = true; –

+0

lol да !! снова двигаясь в правильном направлении! Я могу получить часть вывода подробного сообщения, но по какой-то причине он не отображает его все. его, как его обрезание из-за слишком большого количества данных или чего-то еще. Вы знаете, почему все сообщение не распечатывается? Единственная причина, по которой я знаю, что это не полное сообщение, потому что я использовал клиент Mozilla REST, чтобы помочь мне с ошибкой, но конечной целью является то, чтобы мое приложение обрабатывало все записи и создавало полезную информацию для отладки. – rapid3642

Смежные вопросы