exchange(...)
кодирует ваш URI во второй раз.Попробуйте вместо этого создать URI, используя UriComponentsBuilder.build(true)
(true
говорит о том, что ваш URI уже закодирован).Я вижу в вашем посте, что вы говорите, что пытались это сделать, но похоже, что вы преобразовали его обратно в строку при передаче его в exchange()
, что, вероятно, в любом случае привело к тому, что оно было закодировано во второй раз.
UriComponents uriComponents = UriComponentsBuilder.fromPath(link).queryParam("media","json").build(true);
URI uri= uriComponents.toUri();
или
UriComponents uriComponents = UriComponentsBuilder.fromHttpUrl(path + "?media=json").build(true);
тоже должно быть в порядке.И затем, чтобы использовать это, сделайте
ResponseEntity<String> response = restTemplate.exchange(uri, HttpMethod.GET, request, String.class);
вместо
ResponseEntity<String> response = restTemplate.exchange(uri.toString()+ "?media=json", HttpMethod.GET, request, String.class);