今天在写代码时,遇到了一个意想不到的情况,一个函数功能在测试Test里跑得好好的,但是通过前端接收的数据跑起来遇到了java.net.URISyntaxException: Illegal character in query at index...URI语法异常。最后发现居然是接收请求过程的问题。
下面简单演示下问题。
后端controller层代码:
@GetMapping("/getString")
public String getString (@RequestBody String str){
System.out.println("接收到的字符串为"+str);
return str;
}
postman传一串字符
控制台打印:
接收到的字符串为"一段字符aaaa"
注意这里,多了一对引号,这是在预料之外的,会引起意想不到的BUG。
解决方法:
方法一:直接切割字符串去掉引号
方法二:将传字符串的方法改为传参数
后端的代码:
@GetMapping("/getString")
public String getString (HttpServletRequest request){
System.out.println("接收到的字符串为"+request.getParameter("param"));
return request.getParameter("param");
}
控制台打印:
接收到的字符串为一段字符串aa
解决了引号多余的问题。
版权归原作者 未定几率 所有, 如有侵权,请联系我们删除。