如何使用Volley以Json对象作为参数发送删除请求?

时间:2017-08-16 11:12:18

标签: java android json

我的put方法工作正常,但只是将put请求更改为Delete然后它不起作用,我甚至尝试发送它的标题。但仍然没有工作。我甚至尝试过Json对象来设置参数。提前谢谢。



StringRequest stringRequest = new StringRequest(Request.Method.DELETE, url, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                Log.d("blalala", response);
                String qtyReserved1 = response.toString();
                   Toast.makeText(mContext, "ok" + qtyReserved1, Toast.LENGTH_SHORT).show();
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Toast.makeText(mContext, "not ok" + username + Integer.toString(inventoryId), Toast.LENGTH_SHORT).show();
            }
        })
        {
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String, String> params = new HashMap<>();
                params.put("screen_name", username);
                params.put("inventory_id", Integer.toString(inventoryId));
                params.put("pending", "true");
                return params;
            }
            @Override
            public String getBodyContentType() {
                return "application/json";
            }
        };
        MySingleton.mySingletonInstance(mContext.getApplicationContext()).addToRequestque(stringRequest);
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

使用DELETE方法时,Volley库不会发送正文。你可以尝试其他图书馆。我通过使用loopj库

为您提供示例

在您的gradle中添加依赖

 compile 'com.loopj.android:android-async-http:1.4.9'

请求您的网络Api

  RequestParams requestParams = new RequestParams();
    requestParams.put("screen_name", "mariyam.shimaanath");
    requestParams.put("inventory_id", 19);
    requestParams.put("pending", true);

    String url="192.168.4.31/api/canteen/cart";

    new AsyncHttpClient().delete(url, requestParams, new AsyncHttpResponseHandler() {
        @Override
        public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
          String rs = new String(responseBody);

           // do whatever you want

        }

        @Override
        public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {

        }
    });

答案 1 :(得分:0)

经过大量的研究,感谢上帝,我设法解决了这个问题,并未完全解决了排球中删除请求中的问题。但是,我不得不改变我需要从服务器端请求的方法。我将请求更改为post方法,我知道这可能不是一个好的做法和解决方案,但现在我设法从服务器删除。这就是我需要的。