HttpClient 的 WebAPI 删除列表
Posted
技术标签:
【中文标题】HttpClient 的 WebAPI 删除列表【英文标题】:WebAPI delete list by HttpClient 【发布时间】:2014-12-03 07:56:17 【问题描述】:在我的 WebApi 中,我想让方法女巫接受 ID 列表作为参数并将它们全部删除。所以这个方法看起来像下面的代码。
[HttpDelete]
public IHttpActionResult DeleteList([FromBody]IEnumerable<int> templateIds)
我还需要使用 .NET 的 HttpClient 为此编写单元测试。 所以我的问题是:如何使用 HttpClient DeleteAsync 将 Id 的数组/列表传递给 WebApi?
:)
【问题讨论】:
重复***.com/questions/10093514/… 您是否考虑过使用内置的 HTTP 批处理支持 【参考方案1】:据我所知,在 HTTP DELETE 中发送消息正文在 Web Api 中被忽略。另一种方法是从 Uri 中获取 Id 列表:
[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());
【讨论】:
以上是关于HttpClient 的 WebAPI 删除列表的主要内容,如果未能解决你的问题,请参考以下文章
java 通过httpclient调用https 的webapi
HttpClient 将 ClaimsIdentity 传递给另一个 WebApi