【问题标题】:Android : com.android.volley.ServerError安卓:com.android.volley.ServerError
【发布时间】:2017-05-26 10:58:47
【问题描述】:

我正在尝试将 volley request 解析为 "JsonObjectRequest" ,

我得到的错误是 "com.android.volley.ServerError" ,不知道是什么原因。

       RequestQueue queue = Volley.newRequestQueue(mConetxt);       


JsonObjectRequest putRequestUNregister = new JsonObjectRequest(Request.Method.POST, Global.un_register_device, deviceInfoUnRegister,
            new Response.Listener<JSONObject>()
            {
                @Override
                public void onResponse(JSONObject response) {
                    // response

                }
            },
            new Response.ErrorListener()
            {
                @Override
                public void onErrorResponse(VolleyError error) {
                    // error
                    hideProgress();
                    notificationInterface.NotificationReturn(false);
                    Log.e("Error.Response","notify onErrorResponse VolleyError "+ error.toString());
                    if (error instanceof TimeoutError || error instanceof NoConnectionError) {
                        Log.e("Error.Response","notify onErrorResponse VolleyError TimeoutError"+ error.toString());
                    } else if (error instanceof AuthFailureError) {
                        Log.e("Error.Response","notify onErrorResponse VolleyError AuthFailureError"+ error.toString());
                    } else if (error instanceof ServerError) {
                        Log.e("Error.Response","notify onErrorResponse VolleyError ServerError"+ error.toString());
                        //TODO
                    } else if (error instanceof NetworkError) {
                        Log.e("Error.Response","notify onErrorResponse VolleyError NetworkError"+ error.toString());
                        //TODO
                    } else if (error instanceof ParseError) {
                        Log.e("Error.Response","notify onErrorResponse VolleyError ParseError"+ error.toString());
                        //TODO
                    }
                }
            }
    ) {

        @Override
        public Map<String, String> getHeaders()
        {
            Map<String, String> headers = new HashMap<String, String>();
            headers.put("Content-Type", "application/json; charset=utf-8");
            headers.put("Accept", "application/json");

            return headers;
        }

        @Override
        public String getBodyContentType() {
            return "application/json; charset=utf-8";
        }

        @Override
        public byte[] getBody() {

            try {
                return deviceInfoUnRegister.toString().getBytes("UTF-8");
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
            return null;
        }
    };

这是我试图解析的方式, 并且收到错误为“VolleyError com.android.volley.ServerError

【问题讨论】:

  • 尝试确保您的服务器运行良好。您可以使用 Postman(chrome 插件)或任何其他方式向 url 发送 post 请求并查看它的响应。
  • 试试StringRequest 和你得到的回应。
  • 你得到的回应是什么......尝试打印它的stackTrace
  • 收到响应为“VolleyError com.android.volley.ServerError”@ND1010_
  • 请检查服务器日志

标签: android json server android-volley server-error


【解决方案1】:

将代码替换为

 headers.put("Content-Type", "application/json; charset=utf-8");
 headers.put("Accept", "application/json");

headers.put("Accept","application/json");
headers.put("Content-Type","application/json");

【讨论】:

  • 你能告诉我你得到的响应代码是什么吗?
  • 它调用 new Response.ErrorListener() 和 onErrorResponse 作为 "com.android.volley.ServerError" @ND1010_
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-15
  • 1970-01-01
  • 2011-11-24
  • 2017-12-05
  • 2012-04-08
相关资源
最近更新 更多