2017-04-11 8 views
0

アンドロイドのx-www-form-urlencodedにデータを送信して削除リクエストを渡すにはどうすればよいですか?x-www-url-form-encodedeのボディをvolleyライブラリを使用して削除リクエストに送信できますか?

@Override 
public byte[] getBody() { 

    Map<String, String> params = new HashMap<>(); 
    params.put("is_admin","1"); 
    params.put("client_dbname",sessionManager.clientdbname()); 
    params.put("user_id" ,"1"); 

    //yeah, I copied this from the base method. 
    if (params !=null) 
    { 
     try { 
      para = params.toString().getBytes("UTF-8"); 
     } catch (UnsupportedEncodingException e) { 
      e.printStackTrace(); 
     } 
    } 

    return para; 
} 
+0

http://www.androidhive.info/2014/05/android-working -with-volley-library-1 / –

答えて

1

これは、デフォルトで、VolleyがBodyをDELETEに送信しないためです。 POST、PUT、PATCHの場合のみ。

使用削除要求

https://github.com/ngocchung/DeleteRequest

ため、このサードパーティの削除要求のために、このクラスを試してみてください:

public class StringJSONBodyReqest extends StringRequest { 

    private static final String TAG = StringJSONBodyReqest.class.getName(); 
    private final String mContent; 

    public StringJSONBodyReqest(int method, String url, String content, Response.Listener<String> listener, Response.ErrorListener errorListener) { 
     super(method, url, listener, errorListener); 
     mContent = content; 
    } 


    @Override 
    public Map<String, String> getHeaders() throws AuthFailureError { 
     HashMap<String, String> headers = new HashMap<String, String>(); 
     headers.put("api-version", "1"); 

     return headers; 
    } 


    @Override 
    public byte[] getBody() throws AuthFailureError { 

     byte[] body = new byte[0]; 
     try { 
      body = mContent.getBytes("UTF-8"); 
     } catch (UnsupportedEncodingException e) { 
      Log.e(TAG, "Unable to gets bytes from JSON", e.fillInStackTrace()); 
     } 
     return body; 
    } 


    @Override 
    public String getBodyContentType() { 
     return "application/json"; 
    } 
} 
関連する問題