Пример тела HTTP-запроса
<Name>Cátia</Name>
Пример тела ответа HTTP
<Name>C�tia</Name>
Вот класс запроса
@JacksonXmlRootElement(localName = "Root")
public class Request {
@JacksonXmlProperty(isAttribute = true, localName = "Id")
private String id;
@JacksonXmlProperty(isAttribute = true, localName = "Name")
private String name;
}
Вот HTTP-запрос
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.add(HttpHeaders.CONTENT_TYPE, "application/xml;charset=UTF-8");
HttpEntity<> httpEntity = new HttpEntity<>(request, httpHeaders);
responseEntity = restTemplate
.exchange("URL", HttpMethod.POST, httpEntity, Response.class);
Вот класс ответа
@JsonDeserialize(using = ResponseDeserializer.class)
public class Response {
@JacksonXmlProperty(localName = "NAME")
public String name;
}
Вот класс ResponseDeserializer
public class ResponseDeserializer extends JsonDeserializer<Response> {
@Override
public Response deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
ObjectCodec objectCodec = p.getCodec();
JsonNode jsonNode = objectCodec.readTree(p);
return JsonUtils.getObjectMapper().readValue(JsonUtils.getObjectMapper().writeValueAsString(jsonNode),
Response.class);
}
}
Вот исключение
JsonNode jsonNode = objectCodec.readTree (p);
метод readTree бросил 'com.fasterxml.jackson.core.JsonParseException'
исключение. Недопустимый средний байт UTF-8 0x74 (для char # 2480, байт # 1371)