Я пытаюсь использовать API с двумя разными ответами.при предоставлении правильного ввода и заголовков, он дает один объект json.Это хорошо работает с кодом, приведенным ниже.
, но когда один из входных данных или заголовков отсутствует, api возвращает другой json, который сообщает подробности об ошибках при обращении к Postman, но то же самое не достигается клиентским кодом.Выдает исключение, но API должен вернуть json с подробностями ошибки.
Сначала я попытался с postForobject (), затем изменил на exchange (), предполагая, что postForObject возвращает объект, а api не получает ожидаемый формат объекта.поэтому попытался использовать String.clas вместо определенного класса
, что можно сделать, чтобы получить два разных объекта json, нажав один и тот же URL-адрес?
при успехе:
{
"contacts": [
{
"input": "98########",
"status": "valid"
}
]
}
приотсутствует ввод или заголовок:
"errors": [
{
"code": 1###,
"title": "Access denied",
"details": "invalid deatils"
}
]
ниже мой код:
public static void main(String[] args) throws Exception {
RestTemplate restTemplate = new RestTemplate();
String check_Contact_Async = "https://port/contacts/";
sslByPass();
//headers = setHeaders();
contactsDTO = getInput();
final HttpEntity<ContactsDTO> entity = new HttpEntity<ContactsDTO>(contactsDTO, headers);
try {
//WsResponse res = restTemplate.postForObject(check_Contact_Async, entity, WsResponse.class);
ResponseEntity<String> responseEntity = restTemplate.exchange(
check_Contact_Async, HttpMethod.POST, entity,
String.class);
System.out.println(responseEntity);
} catch (Exception exception) {
System.out.println(exception);
}
}
Exception in thread "main" org.springframework.web.client.HttpClientErrorException: 401 Unauthorized
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:91)
at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:667)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:620)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:580)
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:498)
at com.websystique.springmvc.apitest.Example.main(Example.java:120)
любая подсказка будет полезна
Спасибо