потреблять Rest API с двумя разными ответами - PullRequest
0 голосов
/ 08 июня 2018

Я пытаюсь использовать 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)

любая подсказка будет полезна

Спасибо

...