简体   繁体   English

如何读取Volley意外响应代码500

[英]How to read Volley Unexpected response code 500

Hi guys I do not know how to read the actual detailed error message from the server, all I am getting is E/Volley: [73767] BasicNetwork.performRequest: Unexpected response code 500 for https://xxxx.com/xxxxx I saw people adding a onErrorResponse listener but mine isnt working so im clearly missing something, below is my code, any help is appreciated. 大家好,我不知道如何从服务器读取实际的详细错误消息,我得到的只是E / Volley:[73767] BasicNetwork.performRequest:我看到的https://xxxx.com/xxxxx意外响应代码500人们添加了onErrorResponse侦听器,但我的工作不正常,因此我明显缺少某些内容,以下是我的代码,感谢您的帮助。

Request: 请求:

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 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;
    }
}

I think there might be a mistake in GetUserFavoritesRequest's constructor 我认为GetUserFavoritesRequest的构造函数中可能有一个错误

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

change null to errorListener. 将null更改为errorListener。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM