我需要像URL中的参数值一样传递^
。例如:
http://localhost:8080/myapp/books?filter=^
但是有一个error:java.lang.IllegalArgumentException
:在请求目标中发现无效字符。有效字符在RFC 7230和RFC 3986中定义。我已经阅读过,需要进行编码。有这样的事情,但仍然无法正常工作。我也尝试添加
System.setProperty(“ tomcat.util.http.parser.HttpParser.requestTargetAllow” ^“);
但是对于^
并没有帮助。
我有一个控制器:
@RequestMapping("/books")
public String getBooks(@RequestParam(value = "filter") String filter, Model model)
throws UnsupportedEncodingException {
String par = URLEncoder.encode(nameFilter,"UTF-8");
List<Books> books = (List<Books>) booksService.findAll(filter);
model.addAttribute("books", books);
return "getBooks";
}
}
答案 0 :(得分:0)
尝试遵循此步骤,将会有所帮助:
@Mark’s comment也是正确的。
答案 1 :(得分:0)
在对REST Api发出请求之前,请尝试对URI进行编码
例如,当您使用JS时,请阅读以下内容: https://www.w3schools.com/jsref/jsref_encodeURI.asp 在Java上:Java URL encoding: URLEncoder vs. URI
祝你好运!