#java #spring #java-ee-6 #rest
#java #весна #java-ee-6 #rest
Вопрос:
Получение сообщения об ошибке value exist в SOAPUI, но в клиентском коде spring RestTemplate я получаю HttpClientErrorException: 400 неверный запрос.
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("Authorization", authHeader);
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
HttpEntity<String> entity = new HttpEntity<>(requestJson, headers);
System.out.println("" entity);
ResponseEntity<String> response=restTemplate.exchange(API_URL,HttpMethod.POST,entity,String.class);
Но если я попытаюсь выполнить правильный запрос в приведенном выше коде, я получаю успех, если я повторю тот же запрос еще раз, мне действительно нужно получить «Значение уже существует», но я получаю ошибку 400
Обновить
Поскольку это сценарий ошибки, я получаю сообщение об ошибке в теле исключения. 1 — Поэтому мне нужно перехватить HttpClientErrorException 2 — используйте getBodyAsString() для получения сообщения об ошибке
Комментарии:
1. наиболее вероятной причиной является неправильное значение заголовка авторизации для
authHeader
… но трудно сказать без более подробной информации. Возможно, значениеrequestJson
неверно. Если вы предоставите более подробную информацию в отношении них, каков эквивалентный запрос пользовательского интерфейса SOAP (в форме curl) Я подозреваю, что вы получите более полезный ответ.2. Вы упомянули, что ответ от SoapUI — «существует сообщение об ошибке»? Является ли код состояния ответа
400
?3. код состояния равен 400, но в SoapUI отображается «Значение уже существует».