如何使用RestTemplate在List中获取结果并将响应放入List



嗨,我试图实现的是,我想使用其他API,并使用RestTemplate将一些响应数据放入我的函数中的List中,下面是我的代码的样子:

@PostMapping("/save-new")
public ResponseEntity<ShipmentAddressGrouping> saveNewShipmentAddressGrouping(@Valid @RequestBody InputRequest<ShipmentAddressGroupingDto> request) {
String url = baseUrl + "/load-list";
HttpEntity<PartnerShipmentDto> requestPartnerShipmentDto = new HttpEntity<>(new PartnerShipmentDto());
RestTemplate restTemplate = new RestTemplate();
List<PartnerShipmentDto> partnerShipmentDto = restTemplate.postForObject(url, requestPartnerShipmentDto, new ParameterizedTypeReference<List<PartnerShipmentDto>>() {});
ShipmentAddressGrouping newShipmentAddressGrouping = shipmentAddressGroupingService.save(request);
return ResponseEntity.ok(newShipmentAddressGrouping);
}

正如你所看到的,我试图在列表中获得响应,也就是我在这里尝试restTemplate.postForObject(url, requestPartnerShipmentDto, new ParameterizedTypeReference<List<PartnerShipmentDto>>() {});

但我在restTemplate.postForObject中得到了错误下划线,看起来像这样:

中的方法postForObject(String,Object,Class,Object…(类型RestTemplate不适用于参数(String,HttpEntity,新参数化类型引用<列表>(({}(

我应该更改什么来修复此问题?

如果要使用ParameterizedTypeReference<T>,则需要使用RestTemplate.exchange(),因为这是唯一公开类型为ParameterizedTypeReference<T>的参数的方法。

List<PartnerShipmentDto> partnerShipmentDto = restTemplate.exchange(url, 
HttpMethod.GET, 
requestPartnerShipmentDto,
new ParameterizedTypeReference<List<PartnerShipmentDto>>() {})
.getBody();

最新更新