Skip to main content
 首页 » 编程设计

c#之WebAPI 通过 HttpClient 删除列表

2024年08月12日43yjmyzz

在我的 WebApi 中,我想让方法女巫接受 ID 列表作为参数并将它们全部删除。所以这个方法看起来像下面的代码。

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

我还需要使用 .NET 的 HttpClient 为此编写单元测试。 所以我的问题是:如何使用 HttpClient DeleteAsync 将 ID 数组/列表传递给 WebApi?

:)

请您参考如下方法:

据我所知,在 HTTP DELETE 中发送消息正文在 Web Api 中会被忽略。另一种方法是从 Uri 中获取 ID 列表:

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

然后调用 url: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());