DELETE请求不起作用,返回状态码200

时间:2015-06-12 12:34:25

标签: android httpurlconnection

我试图在android中使用HttpUrlConnection触发DELETE请求,我将setRequestmethod设置为DELETE并获得200作为响应代码。该项目未被删除。我正在使用的异步是在下面。

private class DeleteTask extends AsyncTask<String, Void, String> {
    @Override
    protected String doInBackground(String... urls) {
        String result = null;
        URL url = null;
        try {
            url = new URL(urls[0]);
            Log.i("URL to access :", urls[0]);
        } catch (MalformedURLException exception) {
            exception.printStackTrace();
        }
        HttpURLConnection httpURLConnection = null;
        try {
            httpURLConnection = (HttpURLConnection) url.openConnection();
            httpURLConnection.setRequestMethod("DELETE");
            httpURLConnection.setRequestProperty("charset", "utf-8");
            httpURLConnection.setUseCaches(false);
            System.out.println("ResponseCode: "+httpURLConnection.getResponseCode());
            if(httpURLConnection.getResponseCode() == 204){
                Log.d(TAG,"Deleted");
            }
        } catch (IOException exception) {
            exception.printStackTrace();
        } finally {
            if (httpURLConnection != null) {
                httpURLConnection.disconnect();
            }
        }
        return null;
    }
    }
}

看起来setRequestMethod()不起作用,它将请求作为GET并给我一个200 !!

我在postman(镀铬扩展)测试了这个并且工作正常,如果它是后端问题,那么邮递员也应该失败。
okHttp: 我试图在okHttp上为这个

做这项工作
Request request = new Request.Builder().url(url.toString()).patch(body).build();

如何删除,因为删除请求剂量有一个正文

Volly: 我也试过了谷歌图书馆..

RequestQueue requestQueue = Volley.newRequestQueue(TimerSummary.this);
    StringRequest request = new StringRequest(Request.Method.DELETE, uri, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            Log.d(TAG,"Response: "+response);
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.d(TAG,"Error: "+error);
        }
    });
    requestQueue.add(request);

这也像GET请求一样返回,我得到的项目是json,应该被删除。

任何建议表示赞赏。 提前谢谢..

1 个答案:

答案 0 :(得分:0)

这实际上是一个错字!!!我是一个白痴!我的两种方法都很好,但我现在正在使用Google的volly库来处理与网络有关的事情。

我错过了&#34; /&#34;在&#34;?&#34;之前在使用URL附加参数之前