2016-10-26 13 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:https://xxxx.com/xxxxxの予期しない応答コード500 E/Volley:Error。 HTTPステータスコード:500 E/Volley:ServerError D/Maps :: Error:null – rapid3642

+1

これを試してください Log.d( "Maps:"、 "Error:" + new String(error.networkResponse.data)); finished = true; –

+0

笑はい!もう一度正しい方向に動く!私は詳細なメッセージの出力を得ることができますが、何らかの理由でそれをすべて表示していません。あまりにも多くのデータや何かの原因をカットオフのような。メッセージ全体が印刷されない理由を知っていますか?私がMozilla RESTクライアントを使用してエラーを解決する原因となった完全なメッセージではないことがわかった唯一の理由ですが、最終的な目標はアプリケーションがすべてのログを処理して有用なデバッグ情報を生成することです。 – rapid3642

関連する問題