Как передать символ вставки в URL? - PullRequest
0 голосов
/ 19 октября 2018

Мне нужно передать ^ как значение параметра в URL.Например:

http://localhost:8080/myapp/books?filter=^

Но в цели запроса найден error:java.lang.IllegalArgumentException: недопустимый символ.Допустимые символы определены в RFC 7230 и RFC 3986. Я прочитал, что мне нужно кодировать.Есть что-то подобное, но это все равно не работает.Я также пытаюсь добавить System.setProperty ("tomcat.util.http.parser.HttpParser.requestTargetAllow" ^ ");

, но для ^ это не поможет.

Iесть контроллер:

@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";
}

}

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Попробуйте кодировать URI перед выполнением запроса к вашему REST Api

Например, когда вы используете JS, прочитайте это: https://www.w3schools.com/jsref/jsref_encodeURI.asp На Java: Кодировка URL Java: URLEncoderпротив URI

Goodluck!

0 голосов
/ 19 октября 2018

Попробуйте выполнить это, это поможет:

https://secure.n -able.com / webhelp / NC_9-1-0_SO_en / Content / SA_docs / API_Level_Integration / API_Integration_URLEncoding.html

@ Комментарий Марка также является правильным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...