Вы можете написать строковое представление вашего XML, используя jaxb, и отправить строку как тело запроса.Я считаю, что у вас есть объектное представление вашего тела запроса yourCusomObject
Используя jaxbMarshaller
, вы можете преобразовать свой объект в xml и в строку.
StringWriter sw = new StringWriter();
jaxbMarshaller.marshal(yourCusomObject, sw);
String objectAsXmlString = sw.toString();
HttpEntity<String> entity = new HttpEntity<>(objectAsXmlString, headers);
ResponseEntity<String> response = restTemplate.postForEntity("/url", entity, String.class);
ОП также хочет знать, какпередать параметры запроса
http://MyHost:PORT/employee/{employee_id}
Учтите, что это мой URL-адрес с переменной пути employee_id
, и мне также нужно добавить параметр запроса (?firstName=Abc&lastName=Pqr
) вurl
Вот как вы должны это сделать.Код дает экземпляр URI, который можно использовать в restTemplate.
String url = "http://MyHost:PORT/employee/{employee_id}";
Map<String, String> uriParams = new HashMap<String, String>();
uriParams.put("employee_id", "1231231");
UriComponentsBuilder builder = UriComponentsBuilder.fromUriString(url)
// Add query parameter
.queryParam("firstName", "Abc")
.queryParam("lastName", "Pqr");
URI urlWithParameters = builder.buildAndExpand(uriParams).toUri();
Однако избегайте использования параметров запроса с POST