I am consuming API which has to type of response success response 200 and Bad response 400 both of them has parameters inside their response body but the problem is am not able to get the bad response parameters it throws this exception
public ResponseEntity<String> balanceInquiry(BalanceInquiryRequestDto balanceInquiryRequestDto) {
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
httpHeaders.set("API-KEY", "5d6f54d4");
HttpEntity<BalanceInquiryRequestDto> request = new HttpEntity<BalanceInquiryRequestDto>(balanceInquiryRequestDto , httpHeaders);
ResponseEntity<String> postForEntity =
restTemplate.postForEntity(uri , request, String.class);
return postForEntity;
}
it is working good when the response is ok 200
в заголовке запроса нет параметра, который отправляю api-key




Я создал небольшой проект весенней загрузки, чтобы продемонстрировать, на что вы способны.
Сначала простой сервис, который выдаст нам ошибку при вызове:
@RestController
public class Endpoint {
@GetMapping("/error")
public ResponseEntity createError() {
ErrorDetails errorDetails = new ErrorDetails("some error message");
return ResponseEntity.status(400).body(errorDetails);;
}
}
Сведения об ошибке, которые вы хотите извлечь, аналогичны приведенным в этом примере:
@AllArgsConstructor
@Getter
@Setter
@ToString
@EqualsAndHashCode
public class ErrorDetails {
private String errorMessage;
}
А затем еще одна конечная точка с клиентом, который вызывает сбойную службу. Он возвращает полученные сведения об ошибке:
@RestController
public class ClientDemo {
@Autowired
private RestTemplate restTemplate;
@GetMapping("/show-error")
public String createError() {
try{
return restTemplate.getForEntity("http://localhost:8080/error", String.class).getBody();
} catch(HttpClientErrorException | HttpServerErrorException ex) {
return ex.getResponseBodyAsString();
}
}
}
Для завершения:
@SpringBootApplication
public class StackoverflowApplication {
public static void main(String[] args) {
SpringApplication.run(StackoverflowApplication.class, args);
}
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
При переходе к http: // локальный: 8080 / шоу-ошибка вы видите это:
{
"errorMessage": "some error message"
}
спасибо большое, это было очень полезно для меня
@FakhriSatiiBoto рад помочь
Вы должны предоставить более подробную информацию. Какие параметры? Какие заголовки?