vitya_brodov
@vitya_brodov
Java dev

Как принять ответ в виде xml с сконвертировать его в pojo?

Я отправляю 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>
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
xez
@xez Куратор тега Java
TL Junior Roo
Вы можете принимать сразу ваш класс .bodyToMono(MyClass.class)
Его скорее всего нужно будет аннотировать @Xml.... тэгами
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы