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

为什么我的.NET Core WebAPI指定POST请求返回404但同控制器GET正常

问题原因
  • 路由不匹配:你定义的POST接口路由模板[HttpPost("Authenticate/{deviceIdentifier}")]中,deviceIdentifier被声明为路径参数,必须拼接在URL路径中才能被路由系统识别。但你测试时将deviceIdentifier作为查询参数放在?之后,和预设的路由规则不匹配,因此返回404状态码。
  • 额外排查点:确认Postman中发送请求时选择的请求方法为POST,若误选GET、PUT等其他方法也会触发404报错。
解决方法

两种方案二选一即可:

方案1:调整请求地址(不修改后端代码)

将Postman中的请求路径改为路径传参形式,请求方法保持POST:

https://localhost:5002/Main/Authenticate/bd78209e-e3a0-4576-a17c-832838ce6495

方案2:调整后端接口路由(保留原请求地址格式)

修改POST接口的路由特性,移除路由模板中的路径参数声明,让参数默认从查询参数绑定:

[HttpPost("Authenticate")]
public async Task<ActionResult<ServiceResponse<AuthorizedDoorsDto>>> Authenticate(Guid deviceIdentifier)
{
    Guid id = Guid.Parse(User.Claims.FirstOrDefault(d => d.Type == ClaimTypes.NameIdentifier).Value);
    return Ok(await mainService.Authenticate(id, deviceIdentifier));
}

调整后你原来的Postman请求地址即可正常使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 11:36:00