Возникла проблема при чтении больших данных JSON (> 100 МБ) с использованием webClient за один раз (фрагменты / разбиение на страницы не поддерживаются со стороны клиента). Также я попытался использовать restTemplate, но не повезло.
Код WebClient:
public List<Phone> fetchPhoneDetails(PhoneRequest request) {
try {
PhoneResponseDTO response = webClientBuiler.build()
.post()
.uri(url)
.contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON)
.body(BodyInserters.fromObject(request))
.retrieve().bodyToMono(PhoneResponseDTO.class).block();
if(null != response.getResponse()) {
return objectMapper.convertValue(response.getResponse(), new TypeReference<List<Phone>>(){ });
}
} catch (HttpClientErrorException e) {
throw e;
}
return new ArrayList<>();
}
Использование RestTemplate:
@Override
public List<Phone> fetchPhoneDetails(Phone request) {
try {
HttpEntity<Phone> requestEntity = new HttpEntity<>(request, getHttpHeaders());
PhoneResponseDTO response = new RestTemplate().postForObject(url, requestEntity, PhoneResponseDTO.class);
if(null != response && null != response.getResponse()) {
return objectMapper.convertValue(response.getResponse(), new TypeReference<List<Phone>>(){ });
}
} catch (HttpClientErrorException e) {
throw e;
}
return new ArrayList<>();
}
Ошибка:
com.fasterxml.jackson.core.io.JsonEOFException: Unexpected end-of-input in VALUE_STRING
at [Source: (PushbackInputStream); line: 1, column: 84980163]
at com.fasterxml.jackson.core.base.ParserMinimalBase._reportInvalidEOF(ParserMinimalBase.java:618) ~[jackson-core-2.9.9.jar:2.9.9]
Любая помощь будет принята с благодарностью.