我试图发送一个删除请求到我的服务器,但我得到一个400坏的请求错误代码回来。我搜索了很多,但找不到任何有帮助的解决办法。当我和 Postman 一起试的时候,这个请求很有效。
postman的curl命令如下:
curl --location --request DELETE 'https://blablabla.de' \
--header 'Content-Type: application/json' \
--data-raw '{
"deviceId":"33",
"factoryReset":"0"
}'
这是我的java代码:
public void unlinkDevice(String deviceId) {
Log.d(LOG_TAG, "unlinkDevice: " + deviceId);
JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("deviceId", deviceId);
jsonObject.put("factoryReset", 0);
} catch (JSONException e) {
e.printStackTrace();
}
JsonObjectRequest request = new JsonObjectRequest(Request.Method.DELETE, url, jsonObject, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
listener.onDeviceUnlink(response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
listener.onError(error);
}
}) {
@Override
public String getBodyContentType() {
return "application/json; charset=utf-8";
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> headers = new HashMap<>();
headers.put("Content-Type", "application/json");
headers.put("Cookie", StartApplication.getCookie());
return headers;
}
};
queue.addToRequestQueue(request);
}
我也尝试不在头中设置内容类型,但是当我得到415错误时,我也删除了getbodycontenttype()方法,但是这也没有改变任何东西。
有什么其他的想法可以帮助你吗?
1条答案
按热度按时间cx6n0qe31#
好吧,我找到原因了。。。在volley中,当您使用delete请求时,主体将被忽略