2016-04-12 16 views
3

Ich versuche, eine DELETE Anfrage mit Volley zu einem REST API mit Parametern wie X-User-E-Mail und X-User-Token zu senden. Ich habe fast alles im Internet versucht, aber immer noch bekomme ich eine 400 Fehlermeldung.Anfrage Löschen mit Volley Android

Wenn ich die POST-Anforderung seine Arbeit verwenden, so dass ich denke, ihr das gleiche für die DELETE, ich habe gerade geändert:

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

von

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

Es ist mein Code ein:

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); 
    } 

Wissen Sie, wie das zu beheben? Danke, dass du mich liest.

Antwort

Verwandte Themen