2014-12-03 32 views
1

在我的WebApi中,我想讓女巫接受ID列表作爲參數並刪除它們。所以這個方法看起來像下面的代碼。HttpClient的WebAPI刪除列表

[HttpDelete] 
public IHttpActionResult DeleteList([FromBody]IEnumerable<int> templateIds) 

我還需要使用.NET的HttpClient編寫單元測試。 所以我的問題是:如何使用HttpClient DeleteAsync將ID列表傳遞給WebApi?

:)

+0

http://stackoverflow.com/questions/10093514/how-的重複to-set-requestbody-for-http-delete-method – Kell 2014-12-03 09:59:30

+1

您是否考慮過使用內置的HTTP批處理支持 – 2014-12-06 22:47:41

回答

3

據我所知,在一個HTTP DELETE在網頁API被忽略發送郵件正文。另一種方法是採取IDS從烏里名單:

[HttpDelete] 
    public void DeleteList([FromUri]IEnumerable<int> ids) 

然後調用與網址:http://server/api/ControllerRoute/ids=1&ids=2

從HttpClient的調用這個,你會直接使DeleteAsync,因爲所有的數據在Url中。

你也可以打破System.Web.HttpUtility建立在URL中的查詢字符串給你,就像這樣:

 var httpClient = new HttpClient(); 
     var queryString = HttpUtility.ParseQueryString(string.Empty); 
     foreach (var id in ids) 
     { 
      queryString.Add("ids", id.ToString()); 
     } 
     var response = httpClient.DeleteAsync(queryString.ToString());