我目前正在编写一个带有 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
添加回答
举报
0/150
提交
取消