Я пытаюсь выполнить DELETE с телом запроса, но продолжаю получать ошибку 400 (неверный запрос). Когда я делаю это в чванстве/почтальоне, он успешно удаляет запись. Но из кода Java я не могу этого сделать
Внешний API разработан таким образом, что ему требуется тело вместе с URL-адресом. Его нельзя изменить. пожалуйста, дайте мне знать, как я могу удалить эту запись с телом запроса
public Person delete(Person person, String url, Map<String, String> uriVariables) throws JsonProcessingException {
RestTemplate restTemplate = new RestTemplate();
CustomObjectMapper mapper = new CustomObjectMapper();
HttpEntity<Person> requestEntity = new HttpEntity<Person>(person);
try {
ResponseEntity<Person> responseEntity = restTemplate.exchange(url, HttpMethod.DELETE, requestEntity, Person.class, uriVariables);
return responseEntity.getBody();
} catch (RestClientException e) {
System.out.println(mapper.writeValueAsString(person));
throw e;
}
}
когда дело доходит до исключения, я получаю запрос JSON в формате JSON, и то же самое отлично работает в Swagger/postman
Я немного погуглил и обнаружил, что у restTemplate есть проблема с удалением, когда есть тело запроса. эта статья не помогла https://jira.spring.io/browse/SPR-12361 а> есть ли способ заставить это работать
requestEntity
. Проверьте свой API и посмотрите, что он ожидает. Затем проверьте, сериализовано ли ваше тело так, как вы ожидали. - person Sotirios Delimanolis   schedule 27.04.2016RestTemplate
. В этот момент вы, вероятно, сами найдете ответ. - person Sotirios Delimanolis   schedule 27.04.2016