FormHttpMessageConverter
делает много проверок, чтобы убедиться, что вы используете MediaType с допустимым набором символов.Я бы попробовал либо разделить его на подклассы и зарегистрировать новый конвертер (хотя есть много частных методов), либо преобразовать вашу MultiValueMap
в String полезную нагрузку вручную (StringHttpMessageConverter
намного менее ограничивает типы медиа)
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
HttpEntity<String> entity = new HttpEntity<>("param1=value1", headers);
String result = restTemplate.postForObject( url, entity, String.class);