You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 6中WebApplicationFactory的HttpClient调用SendAsync返回404

问题原因及解决方法

你的单元测试里Delete请求返回404的核心问题是请求URL没有指定正确的接口路径,只用到了客户端的基础地址(根路径),没拼接Activiteit接口的路由。

看你的代码对比:

  • Post请求明确指定了接口路径 await client.PostAsJsonAsync("/Activiteit", testActiviteit);
  • 但Delete请求里request.RequestUri = client.BaseAddress,相当于只请求了根地址(比如http://localhost:xxxx/),完全没指向删除接口的路由,自然找不到对应的处理逻辑。

修正代码

把Delete请求的RequestUri改成拼接正确的接口路径即可,比如和Post一致的/Activiteit(对应你的删除接口路由):

var request = new HttpRequestMessage();
request.Method = HttpMethod.Delete;
// 拼接正确的接口路径
request.RequestUri = new Uri(client.BaseAddress, "/Activiteit");            
request.Content = new StringContent(JsonSerializer.Serialize(actdel), Encoding.UTF8, "application/json");
response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();

如果你的删除接口是接收请求体的Delete路由(因为你需要传递完整对象),这个路径就和外部调用、Swagger测试时的路径一致,修正后就能触发对应的删除逻辑了。

内容的提问来源于stack exchange,提问作者Martijn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 09:50:32