为了账号安全,请及时绑定邮箱和手机立即绑定

当给定特殊字符时,查询参数中缺少整个字符串 - Java Spring Boot

当给定特殊字符时,查询参数中缺少整个字符串 - Java Spring Boot

繁星coding 2023-07-19 10:46:53
我目前正在编写一个带有 REST API 服务器的 Java Spring Boot 应用程序。我在这里删除了很多不相关的代码,但我的 POST 路由之一如下所示:@RequestMapping(value = "/post-request", method = RequestMethod.POST)public String postRequest(        @RequestParam(name = REQUEST_STRING) String requestString,        ){ logger.info(requestString)}这种方法对于大多数字符串都很有效,但是当在请求参数中包含特殊字符时,我遇到了一个非常奇怪的错误。例如,如果我向应用程序发送包含以下内容的请求:这个 (&) 是一个 & 符号在 Postman 中,应用程序将记录这 (并剪掉特殊字符之后的所有内容。我相当确定这与 REST API 中特殊字符的编码方式有关,尤其是在请求参数方面,但我在这里做错了什么?有没有办法让我使用 Java Spring Boot 获取完整的字符串,或者我是否被限制这样做?
查看完整描述

1 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

RequestParam 与“&”有区别,因此如果您直接在字符串中传递“&”,& 之后的任何内容都将被视为另一个RequestParam例如:http://testdata.com?username=test&password=hello&123&type=user这里密码将作为 hello 传递,123 将被视为另一个 RequestParam为了克服这个问题,您需要将“&”编码为“%26”http://testdata.com?username=test&password=hello%26123&type=user

查看完整回答
反对 回复 2023-07-19
  • 1 回答
  • 0 关注
  • 96 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信