복붙노트

[SPRING] Spring RestTemplate는 get리스트를 보냅니다.

SPRING

Spring RestTemplate는 get리스트를 보냅니다.

Spring의 RestTemplate으로 서비스를 만들고 싶습니다. 코드는 다음과 같습니다.

@PostMapping(path="/savePersonList")
@ResponseBody
public List<Person> generatePersonList(@RequestBody List<Person> person){
    return iPersonRestService.generatePersonList(person);
}

클라이언트 측에서이 코드로 서비스를 호출하면 :

List<Person> p = (List<Person>) restTemplate.postForObject(url, PersonList, List.class);

p 객체를 List 으로 사용할 수 없으면 LinkedHashList가됩니다. 몇 가지 연구를 한 후에 교환 메소드를 사용하여 서비스를 호출해야한다는 해결책을 찾았습니다.

ResponseEntity<List<Person>> rateResponse = restTemplate.exchange(url, HttpMethod.POST, personListResult, new ParameterizedTypeReference<List<Person>>() {});

이 솔루션을 사용하면 서버가 객체를 가져 와서 예외를 발생시킬 수 없습니다. 올바른 방법은 무엇입니까?

해결법

  1. ==============================

    1.코드가 아래와 같은지 확인하십시오. 이것은 효과가있다.

    코드가 아래와 같은지 확인하십시오. 이것은 효과가있다.

    //header
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_JSON);
    //person list
    List<Person> personList = new ArrayList<Person>();
    Person person = new Person();
    person.setName("UserOne");  
    personList.add(person);
    //httpEnitity       
    HttpEntity<Object> requestEntity = new HttpEntity<Object>(personList,headers);
    ResponseEntity<List<Person>> rateResponse = restTemplate.exchange(url, HttpMethod.POST, requestEntity,new ParameterizedTypeReference<List<Person>>() {});
    
  2. ==============================

    2.그것은 당신에게 도움이 될 수 있습니다.

    그것은 당신에게 도움이 될 수 있습니다.

      List<Integer> officialIds = null;
      //add values to officialIds 
      RestTemplate restTemplate = new RestTemplate();
    
      HttpHeaders headers = new HttpHeaders();
    
      HttpEntity<List<Integer>> request = new HttpEntity<List<Integer>>(officialIds, 
        headers);
    
      ResponseEntity<YourResponseClass[]> responses = 
      restTemplate.postForEntity("your URL", request , YourResponseClass[].class );
    
      List<YourResponseClass> list = Arrays.asList(responses.getBody());
    
  3. from https://stackoverflow.com/questions/40079053/spring-resttemplate-send-list-an-get-list by cc-by-sa and MIT license