Android Volley:意外的响应代码405

时间:2015-11-11 11:44:48

标签: android json android-volley

我的Android Volley JsonObjectRequest遇到问题:

遇到onErrorResponse
BasicNetwork.performRequest: Unexpected response code 405 for MY_URL

我的网址有效。我用浏览器检查了一下 我到达那里预期的JSON对象。 所以问题必须在客户端。

代码405表示:

  

不允许的方法请求行中指定的方法不是   允许Request-URI标识的资源。响应   必须包含一个包含有效方法列表的Allow标头   请求的资源。

我的JsonObjectRequest代码:

JsonObjectRequest jsonReq;
            jsonReq = new JsonObjectRequest(URL_FEED, new JSONObject(),
                    new Response.Listener<JSONObject>() {
                        @Override
                        public void onResponse(JSONObject response) {
                            try {
                                VolleyLog.v("Response:%n %s", response.toString(4));
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
                        }
                    }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    VolleyLog.v("ERROR:%n %s", error.getMessage());
                }
            });

            // Adding request to volley request queue
            NetworkController.getInstance().addToRequestQueue(jsonReq);

我是否必须在标题中添加一些信息?如果有什么信息?

2 个答案:

答案 0 :(得分:9)

问题是默认情况下请求设置为POST。 对我有用的解决方案:

  JsonObjectRequest jsonReq = new JsonObjectRequest
                            (Request.Method.GET, URL_FEED, null, new Response.Listener<JSONObject>()
                            {
                                @Override
                                public void onResponse(JSONObject response)
                                {
                                    Log.d("Server", "Läuft");
                                }
                            },
                                    new Response.ErrorListener()
                                    {
                                        @Override
                                        public void onErrorResponse(VolleyError error)
                                        {
                                            Log.d("Server","onErrorResponse");
                                        }
                                    });
                    NetworkController.getInstance().addToRequestQueue(jsonReq);

答案 1 :(得分:1)

使用 GET 方法代替对我有用的 POST