Мне нужно сохранить PDF службы POST, но я всегда получаю сообщение об ошибке:
"Ошибка при извлечении ответа для типа [class java .lang.Object] и типа контента [application / pdf]; вложенным исключением является org.springframework.http.converter.HttpMessageNotReadableException: JSON ошибка синтаксического анализа: непредвиденный символ ('%' (код 37)): ожидаемое допустимое значение (JSON String, Number, Array, Object или токен 'null', 'true' или 'false'); вложенное исключение: com.faster xml .jackson.core.JsonParseException: неожиданный символ ('%' (код 37)): ожидается допустимое значение (JSON String, Number, Array, Object или token 'null', 'true' или 'false') "
Я использую Spring Boot и RestTemplate
Пример:
public static final String base_url = "https://evx.jsreportonline.net/api/report";
static {
HttpsURLConnection.setDefaultHostnameVerifier((hostname, session) -> hostname.equals("evx.jsreportonline.net"));
}
private HttpHeaders getHeaders() {
if (null == headers) {
headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.setAccept(Arrays.asList(MediaType.ALL));
headers.add("Authorization", "Basic " + Base64.getEncoder().encodeToString("test_pdf:test_pdf".getBytes()));
}
return headers;
}
public void getRepo() {
List<HttpMessageConverter<?>> messageConverters = new ArrayList<HttpMessageConverter<?>>();
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
RestTemplate restTemplate = new RestTemplate();
Json jsonObj = new Json("{\"template\":{\"shortid\":\"JCdUaT_\"},\"data\":null}");
// REQUEST
HttpEntity<Object> entity = new HttpEntity<>(jsonObj, this.getHeaders());
/* MENSAGE CONVERTER */
converter.setSupportedMediaTypes(Collections.singletonList(MediaType.ALL));
messageConverters.add(converter);
restTemplate.setMessageConverters(messageConverters);
/* RESPONSE */
try {
Object result = restTemplate.postForObject(base_url, entity, Object.class);
byte[] resultByteArr = (byte[]) result;
} catch (Exception e) {
System.out.println(e.getMessage() + " " + e);
}
}