【发布时间】:2022-01-10 06:16:19
【问题描述】:
我正在编写一个 ASP.net Web API 控制器。我有一个只支持 POST 的端点。我正在编写错误处理代码来为不受支持的 HTTP 方法返回 HTTP 405(而不是默认的 404)。
[HttpPost]
[ODataRoute("foobar")]
public async Task<IActionResult> Post()
{
return NoContent();
}
对于剩下的动词,我有一个错误处理方法:
[HttpGet]
[HttpPatch]
[HttpDelete]
[HttpPut]
[ODataRoute("foobar")]
public async Task<IActionResult> NotSupported()
{
// return http 405;
}
我一直在 Postman 中调用以测试此端点的功能。使用 GET,端点按预期返回 201。但是,只有一些其他 HTTP 动词返回了它们的预期响应。这些调用都是使用完全相同的 URL 进行的,所以我很困惑为什么只有一些动词到达我的 NotSupported 方法。
- 获取:404
- 输入:405
- 补丁:405
- 删除:404
【问题讨论】:
-
你的目标是 .net core 吗?
标签: c# asp.net-web-api