Spring Boot返回405而不是404,用于POST到未知URL

Bri*_*van 7 java spring-boot

免责声明:我是Java,Spring和Spring Boot的新手.

我想在尝试POST到不存在的URL时让Spring Boot返回404.但是,现在它返回405,其Allow标头只包含GET和HEAD.有没有办法自定义允许哪些HTTP方法,以便我得到404?我已经尝试实现自定义的ErrorController,但这似乎不起作用.

要明确:这是在我发布到一个不应被我定义的任何端点匹配的URL时,例如http://example.com/some-bogus-thing

如果需要更多信息来诊断这一点,我很乐意提供.鉴于我对平台的不熟悉,我不确定什么是相关的.

K13*_*139 4

HTTP 405 (Method not found)返回,when URL exists并且您尝试使用该特定 URL 映射上不允许的 HTTP 方法。

如果您在下面调用 POST,.../test那么它将返回 HTTP 405,反之亦然。

@RequestMapping(value = "/test", method = RequestMethod.GET)
Run Code Online (Sandbox Code Playgroud)

如果任何 HTTP 方法都没有 URL 映射,那么它将返回 HTTP 404。

要了解该特定启动实例上的所有当前映射,只需转到浏览器

http://localhost:8080/mappings
Run Code Online (Sandbox Code Playgroud)

  • 我也看到了这一点,提问者是正确的。查看源代码,似乎只有对无效 URL 的 GET 请求才会返回 404。对于所有其他请求,无论出于何种原因,框架默认返回 405。 (3认同)