RestTemplate中的exchange

如果返回的结果是对象组合,使用postForObject是会有类型转换问题,需要使用exchange中的ParameterizedTypeReference指定返回类型。

List<Test> testList = restOperations.exchange(url, HttpMethod.POST, entity, new ParameterizedTypeReference<List<Test>>() {}).getBody();

但同时post需要提交参数的时候是存在问题的,header不能制定application/json;charset=UTF-8,而且封装的对象为MultiValueMap,HttpEntity 的第二个参数需为空

MultiValueMap<String, Object> params = new LinkedMultiValueMap<String, Object>();
params.add("pageNo",1);

HttpEntity entity = new HttpEntity(params,null);
List<Test> testList = restOperations.exchange(url, HttpMethod.POST, entity, new ParameterizedTypeReference<List<Test>>() {}).getBody();

 

posted @ 2024-10-24 14:56  CharyGao  阅读(33)  评论(0编辑  收藏  举报