Есть у меня такой url:
bookManag/book?name=world and war #2&field=1
передаю в параметре name - world and war #2 проблема в том, что после # всё обрезается и следующий параметр field не приходит. Хорошо, я нашёл как выйти из этой ситуации и заменил решётку на %23
bookManag/book?name=world and war %232&field=1
Но основная проблема не в этом, пытаюсь получить ответ через ResponseEntity
String url = "http://localhost:8081/bookManag/book?name=world and war %232&field=1";
org.springframework.http.ResponseEntity result = restTemplate.exchange(url, HttpMethod.GET, entity, getRespType(), params);
После и происходит ошибка уже внутри спринга, вместо моего правильного url, spring его переделывает в
"http://localhost:8081/bookManag/book?name=world and war %20%25232&field=1"
заменяя %23 на %2523, что в итоге дает не правильный результат. Как исправить эту проблему?
Для кодирования URL надо использовать URLEncoder, в частности его метод encode Вам достаточно прогнать через encode только часть URL-а c решеткой
String url = "http://localhost:8081/bookManag/book?name=" + URLEncoder.encode("world and war #2", "UTF-8") + "&field=1";
В результате у Вас получится строка вида http://localhost:8081/bookManag/book?name=world+and+war+%232&field=1, которая вполне себе валидный URL
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости