java – Spring @RequestMapping处理特殊字符

weixin_38063433 2019-09-12 01:21:43
我有一个这样的REST API: @RequestMapping(value = "/services/produce/{_id}", method = RequestMethod.PATCH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) public String patchObject(@RequestBody PatchObjectRequest obj, @PathVariable("_id") String id) { // some code } 我的问题是可能给出的id是以下形式: US%2FCA%2FSF%2FPlastic 这是“US / CA / SF / Plastic”的URL编码. 我的问题是,当一个%字符放入URL时,@ RequestMapping不会将它映射到此方法,它将返回404.有没有办法接受在其中包含%字符的ID作为URL的一部分?
...全文
312 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38066328 2019-09-12
  • 打赏
  • 举报
回复
您收到此错误,因为它使用它作为路径变量,它被解码,然后服务器尝试将其匹配到不退出的路径.几年前发布的类似问题:How to match a Spring @RequestMapping having a @pathVariable containing “/”?,urlencoded Forward slash is breaking URL. 一个很好的选择是将_id从@PathVariable更改为@RequestParam并解决问题,并将其从路径中删除.

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧