Я отправляю http запрос с телом XML, но могу принять ответ XML виде String.class и потом только потом его мапить в pojo.
Я мой взгляд подходный слишком топорный, как это можно сделать по уму?
пример кода:
public String sendNotification(ReqNotifySMS sms) {
try {
XmlMapper xmlMapper = new XmlMapper();
String requestXmlBody = xmlMapper.writeValueAsString(sms);
return webClient.post()
.uri("http://xml.test.ru")
.header("Authorization", "Basic advaasergregr")
.header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_XML_VALUE)
.bodyValue(requestXmlBody)
.accept(MediaType.valueOf(MediaType.APPLICATION_XML_VALUE))
.retrieve()
.bodyToMono(String.class)
.log()
.block();
}catch (Exception exception){
log.error("Can`t require notification: {}", exception.getLocalizedMessage());
return null;
}
пример ответа:
<Document xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance" xsi:noNamespaceSchemaLocation="testxml.xsd" docId="2371819284" agentId="StepUp-qwerty" created="2023-03-17T15:01:14+00:00">
<AnsNotifySMS reqID="20df8096-92f8-4413-83d1-9234682f9bca">
<info>
<pan>4826</pan>
<outState>PROCESSING</outState>
</info>
</AnsNotifySMS>
</Document>