1

我正在使用 Put 方法制作 JsonObjectRequest,但它无法正常工作并收到 "{"detail":"Method \"GET\" not allowed."}" 错误消息。

它在邮递员上运行良好。有关更多信息,请参阅随附的屏幕截图。 在此处输入图像描述

我没有修改 JsonObjectRequest。我从这里“ http://developer.android.com/training/volley/request.html ”的谷歌示例代码中复制了这段代码。

我不认为这可能是 Volley 中的错误。请仔细阅读我的代码,让我知道我做错了什么。

JsonObjectRequest jsObjRequest = new JsonObjectRequest
            (Request.Method.PUT, url, null, new Response.Listener<JSONObject>() {

                @Override
                public void onResponse(JSONObject response) {
                    hideDialog();
                }
            }, new Response.ErrorListener() {

                @Override
                public void onErrorResponse(VolleyError error) {
                    // TODO Auto-generated method stub
                    hideDialog();

                }
            })

    {
        @Override
        public Map getHeaders() throws AuthFailureError {
            Map headers = new HashMap();
            headers.put("Authorization", "Token " + dm.readString("auth_token"));
            return headers;
        }
    };

AppController.getInstance().addToRequestQueue(jsObjRequest);

编辑:我知道在屏幕截图中它显示了 400 错误请求。这是因为我需要传递 2 个参数,即 {"dg_id":"80","delivery_ids":["90936"]}。有了这个参数,我在 Volley 中也遇到了同样的错误。

示例 auth_token 值:MTIzNDU2NzIzNDM6ZGVsaXZlcnlndXk=

示例正文值:{"dg_id":"80","delivery_ids":["90936"]}

4

1 回答 1

1

在 DELETE、PUT 接口 url 末尾添加“/”,请查看以下代码段。

如果客户端向“/testdir/”(即在目录中)发出 GET 请求......有趣的是,如果客户端向“/testdir”发出 GET 请求(没有指定目录路径“/”),服务器返回一个“301 Move Permanently”,新的“Location”为“/testdir/”,如下。

于 2016-10-29T09:45:46.587 回答