2016-04-12 1 views
3

J'essaie d'envoyer une requête DELETE en utilisant Volley à une API REST avec des paramètres comme X-user-email et X-User-token. J'ai essayé presque tout sur Internet mais je reçois toujours un message d'erreur 400.Demander Delete using Volley Android

Quand j'utilise le POST Demander son travail, donc je pense que la même chose pour le SUPPRIMER, je viens de changer:

(Request.Method.POST, url, params, new Response.Listener<JSONObject>() {...} 

par

(Request.Method.DELETE, url, params, new Response.Listener<JSONObject>() {...} 

Il est mon code suivant:

MainActivity.java

disconnect.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) {; 
       JSONObject params = new JSONObject(); 
       try { 
        params.put("X-User-Email", "[email protected]"); 
        params.put("X-User-Token", "QwerTyuI789IOP"); 
       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 
       NetworkManager.getInstance(v.getContext()).delete("http://10.0.2.2:3000/users/sign_out", params, new NetworkManager.NetworkManagerListener<String>() { 
        @Override 
        public void getResult(String response) 
        { 
         if (!response.isEmpty()) 
         { 
          result.setText(response.toString()); 
          Log.e("Response", response.toString()); 
         } 
        } 
       }); 
      } 
     }); 

NetworkManager.java

public void delete(String url, JSONObject params, final NetworkManagerListener<String> listener) { 
     JsonObjectRequest request = new JsonObjectRequest 
       (Request.Method.DELETE, url, params, new Response.Listener<JSONObject>() { 
        @Override 
        public void onResponse(JSONObject response) { 
         Log.d(TAG + ": ", "delete onResponse : " + response.toString()); 
         if (null != response.toString()) 
          listener.getResult(response.toString()); 
        } 
       }, new Response.ErrorListener() { 

        @Override 
        public void onErrorResponse(VolleyError error) { 
         if (null != error.networkResponse) { 
          Log.d(TAG + ": ", "delete Error Response code: " + error.networkResponse.statusCode); 
          listener.getResult(error.toString()); 
         } 
        } 
       }) { 
      @Override 
      public Map<String, String> getHeaders() throws AuthFailureError { 
       Map<String, String> params = new HashMap<String, String>(); 
       params.put("Accept", "application/json"); 
       params.put("Content-type", "application/json"); 
       return params; 
      } 
     }; 
     ; 
     requestQueue.add(request); 
    } 

Savez-vous comment résoudre ce problème? merci de me lire.

Répondre