RestTemplate中的exchange

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

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

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

MultiValueMap params = new LinkedMultiValueMap();
params.add("pageNo",1);

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

你可能感兴趣的:(RestTemplate中的exchange)