今天在写代码时,遇到了一个意想不到的情况,一个函数功能在测试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文章来源:https://www.toymoban.com/news/detail-520918.html
解决了引号多余的问题。 文章来源地址https://www.toymoban.com/news/detail-520918.html
到了这里,关于请求体Josn字符串中多余的引号所引起的问题及解决方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!