我试图在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,应该被删除。
任何建议表示赞赏。 提前谢谢..
答案 0 :(得分:0)
这实际上是一个错字!!!我是一个白痴!我的两种方法都很好,但我现在正在使用Google的volly库来处理与网络有关的事情。
我错过了&#34; /&#34;在&#34;?&#34;之前在使用URL附加参数之前