在 Spring 引导中具有特殊字符的路径变量,如 #

Path variable having special characters like # in Spring boot

我正在使用 Spring Boot 2.4.6。对于删除 API,找不到 405 方法。我的端点是这样的:beauty/v1/sites/addressTemplates/:templateId

路径变量:#@$%#

有人可以建议可以做些什么来使这种行为不抱怨 405 吗?如果我遗漏了什么,请指导我回答其他问题。

我猜你的问题与Spring无关。也许您正在尝试使用 保留 个字符来组成整个 URL。

在 URL 中,井号、数字符号或井号 (#) 将浏览器指向页面或网站中的特定位置。它用于将对象的 URI 与片段标识符分开。 Source.

这意味着 URL 看起来像:

beauty/v1/sites/addressTemplates/#@$%#

并不完全是你想象的那样,因为 # 是以一种特殊的方式解释的。您需要做的是 percent encode “特殊”路径变量,因此它在最后看起来像这样:

beauty/v1/sites/addressTemplates/%23%40%24%25%23

那么Spring就不会再抱怨了,会妥善解决端点。