ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Spring Boot RestTemplate.exchange는 String.Class 객체로 빈 결과 집합을 제공합니다.
    카테고리 없음 2020. 8. 17. 02:22

    질문

    저는 Spring 부트 버전 2.1.3을 사용하고 있으며 RestTemplate으로 나머지 호출을 시도하고 있습니다. 아래 코드를 확인하세요.

     final String uri = "https://devserver.slm.com/api/now/table/cmdb_ci_business_app";
            RestTemplate restTemplate = new RestTemplate();
            String plainCreds = "devTest:DevTest123";
            byte[] plainCredsBytes = plainCreds.getBytes();
            byte[] base64CredsBytes = Base64.encodeBase64(plainCredsBytes);
            String base64Creds = new String(base64CredsBytes);
            HttpHeaders headers = new HttpHeaders();
            headers.add("Authorization", "Basic " + base64Creds);
            headers.setContentType(MediaType.APPLICATION_JSON);
            HttpEntity<String> entity = new HttpEntity<String>("parameters", headers);
            ResponseEntity<String> response = restTemplate.exchange(uri, HttpMethod.GET, entity, String.class);
            log.info("Result output is: "+ response.getBody());

    코드에 대해 실행할 때 터미널에 다음과 같은 출력이 표시됩니다.

    [정보] 2020-07-01 18 : 12 : 42.906 [scheduling-1] ConsumingRest-결과 출력 : { "result": [{}, {}, {}, {}, {}, {} , {}, {}, {}, {}, {}, {}, {}, {}, {}]}

    문제는 내가 null 출력을 얻는 반면 Postman과 동일한 API를 실행하면 데이터를 얻는다는 것입니다. 아무도 내가 어디에서 실수하고 있는지 알아낼 수 있습니까?

    다음은 Postman에서 얻은 것과 동일한 JSON 데이터입니다.

    {
    "result": [
        {
            "number": "APM013",
            "sys_created_on": "2019-09-03 14:16:52",
            "name": "Integration",
            "business_id": "PA913",
            "routine_id": "4303"
        },
        {
            "number": "AP014",
            "sys_created_on": "2019-09-03 14:16:54",
            "name": "AC Equipement",
            "business_id": "PA914",
            "routine_id": "1558"
        }
    ]}

    문안 인사,DK


    답변1

    아마도 문제는 여기에 있습니다.

    HttpEntity<String> entity = new HttpEntity<String>("parameters", headers);

    이것을 다음으로 변경 :

    HttpEntity entity = new HttpEntity(headers);

    아마도 해결 될 것입니다 (다른 문제가없는 경우).

    또한 공격하려는 API Document를 공유 할 수 있다면 유용 할 것입니다.



     

     

     

     

    출처 : https://stackoverflow.com/questions/62681160/spring-boot-resttemplate-exchange-give-empty-resultset-with-string-class-object

    댓글

Designed by Tistory.