Borrar solicitud con encabezado y Parametes Volley

Hola quiero enviar solicitud de eliminación al servidor utilizando Volley a lo largo de los encabezados y los parámetros del cuerpo. Pero no puedo enviar la solicitud correctamente

Lo que he intentado

JSONObject jsonbObjj = new JSONObject(); try { jsonbObjj.put("nombre", Integer.parseInt(no_of_addition .getText().toString())); jsonbObjj.put("cru", crue); jsonbObjj.put("annee", 2010); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } VolleyRequest mVolleyRequest = new VolleyRequest( Method.DELETE, url, jsonbObjj, new Listener<JSONObject>() { @Override public void onResponse(JSONObject jsonObject) { // TODO Auto-generated method stub if (pDialog != null) { pDialog.dismiss(); } Log.e("Server Response", "response = " + jsonObject.toString()); } }, new ErrorListener() { @Override public void onErrorResponse(VolleyError arg0) { // TODO Auto-generated method stub if (pDialog != null) { pDialog.dismiss(); } Log.e("Error Response", "Error " + arg0.getMessage()); Log.e("Error Response", "Error = " + arg0.getCause()); } }, mUserSession.getUserEmail(), mUserSession .getUserPassword(), false); ApplicationController.getInstance().addToRequestQueue( mVolleyRequest, "deleteRequest"); 

Y aquí está mi clase de solicitud VolleyRequest

 public class VolleyRequest extends JsonObjectRequest { String email, pass; boolean saveCookeis; public VolleyRequest(int method, String url, JSONObject jsonRequest, Listener<JSONObject> listener, ErrorListener errorListener, String email, String pass, boolean saveCookie) { super(method, url, jsonRequest, listener, errorListener); // TODO Auto-generated constructor stub this.email = email; this.pass = pass; this.saveCookeis = saveCookie; } public VolleyRequest(int method, String url, JSONObject jsonRequest, Listener<JSONObject> listener, ErrorListener errorListener) { super(Method.POST, url, jsonRequest, listener, errorListener); // TODO Auto-generated constructor stub } @Override public Map<String, String> getHeaders() throws AuthFailureError { // TODO Auto-generated method stub HashMap<String, String> params = new HashMap<String, String>(); String auth = ""; try { auth = android.util.Base64.encodeToString( (this.email + ":" + this.pass).getBytes("UTF-8"), android.util.Base64.DEFAULT); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } params.put("Authorization", auth); return params; } @Override protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) { // TODO Auto-generated method stub if (saveCookeis) { try { String jsonString = new String(response.data, HttpHeaderParser.parseCharset(response.headers)); ApplicationController.getInstance().checkSessionCookie( response.headers); return Response.success(new JSONObject(jsonString), HttpHeaderParser.parseCacheHeaders(response)); } catch (UnsupportedEncodingException e) { return Response.error(new ParseError(e)); } catch (JSONException je) { return Response.error(new ParseError(je)); } } return super.parseNetworkResponse(response); } } 

Cuando intenté este código consigo 400 error del código de la respuesta Déjeme por favor saber si cualquier persona puede ayudarme .. que qué estoy haciendo mal. Gracias

Aquí las capturas de pantalla para Eliminar Api que he probado y su funcionamiento bien.

Necesito enviar estos Datos al servidor

Y aquí está el servidor de formularios de respuesta

    One Solution collect form web for “Borrar solicitud con encabezado y Parametes Volley”

    ACTUALIZAR:

    He publicado mi proyecto de muestra de trabajo a GitHub para arreglar java.net.ProtocolException: DELETE does not support writing , por favor, eche un vistazo.


    Su aplicación tiene código de error 400 porque el cuerpo de datos no se ha enviado con la solicitud DELETE .

    Dentro de HurlStack.java , encontrará lo siguiente:

      case Method.DELETE: connection.setRequestMethod("DELETE"); break; case Method.POST: connection.setRequestMethod("POST"); addBodyIfExists(connection, request); break; 

    Por lo tanto, podemos ver que la solicitud DELETE ignora los datos del cuerpo. Hay una solución, que es crear una clase CustomHurlStack (copia todo el contenido de HurlStack anterior), con sólo modificación como el siguiente:

      case Request.Method.DELETE: connection.setRequestMethod("DELETE"); addBodyIfExists(connection, request); break; 

    Luego, en su actividad, llame a:

     CustomHurlStack customHurlStack = new CustomHurlStack(); RequestQueue queue = Volley.newRequestQueue(this, customHurlStack); 

    Tenga en cuenta que esta solución sólo funciona para API21 + (API20 que no he probado). Desde API19-, java.net.ProtocolException: DELETE does not support writing será lanzada.

    P / S: agrega useLibrary 'org.apache.http.legacy' dentro de tu archivo build.gradle si tu app compileSdkVersion 23 y obtienes error al crear la clase CustomHurlStack .

    ¡Espero que esto ayude!

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.