[SPRING] Spring RestTemplate는 get리스트를 보냅니다.
SPRINGSpring 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
ResponseEntity<List<Person>> rateResponse = restTemplate.exchange(url, HttpMethod.POST, personListResult, new ParameterizedTypeReference<List<Person>>() {});
이 솔루션을 사용하면 서버가 객체를 가져 와서 예외를 발생시킬 수 없습니다. 올바른 방법은 무엇입니까?
해결법
-
==============================
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.그것은 당신에게 도움이 될 수 있습니다.
그것은 당신에게 도움이 될 수 있습니다.
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());
from https://stackoverflow.com/questions/40079053/spring-resttemplate-send-list-an-get-list by cc-by-sa and MIT license