当前位置: 首页 > 知识库问答 >
问题:

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

胡元忠
2023-03-14

嗨,我想实现的是,我想使用其他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);

}

如您所见,我尝试在List中获得响应,这是我在这里尝试的restTemplate。postForObject(url,requestPartnerShipmentDto,new ParameterizedTypeReference

但我在restTemplate中得到了带下划线的错误。如下所示的postForObject:

方法postForObject(字符串,对象,类,对象...)不适用于参数(String,HttpEntity,new ParameterizedTypeReference

我应该改变什么来解决这个问题?


共有1个答案

储志业
2023-03-14

如果要使用< code > ParameterizedTypeReference

List<PartnerShipmentDto> partnerShipmentDto = restTemplate.exchange(url, 
                HttpMethod.GET, 
                requestPartnerShipmentDto,
                new ParameterizedTypeReference<List<PartnerShipmentDto>>() {})
        .getBody();
 类似资料:
  • 我们在应用程序的公共包中使用restem板。所以我们需要使用泛型类型。 我读过很多关于这方面的解决方案,但似乎没有一个对我们不起作用,我们经常(在客户端)得到: 这里是代码(总结): 我虽然参数化类型参考什么解决这类问题,但它不起作用。 PS:我们正在使用springboot 1.3.1。释放

  • 问题内容: 我正在使用RestTemplate.postForObject将信息发布到Web服务。除了结果字符串,我还需要响应头中的信息。有什么办法可以做到这一点? 问题答案: 好吧,我终于明白了。交换方法正是我所需要的。它返回包含完整标头的HttpEntity。

  • 问题内容: 我需要从外部域获取json数据。我使用webrequest从网站获得响应。这是代码: 有人知道为什么我无法获取json数据吗? 问题答案: 您需要明确要求内容类型。 添加此行: 在适当的地方

  • 这花了我很长时间才弄清楚,所以我想分享它。大多数信息来自SO,我想整合到这个地方。 我的要求是使用 RESTFul POST 上传文件,由于可能文件很大,我想流式传输文件。我显然希望能够阅读回复。 我计划使用泽西作为REST服务器,使用Spring的RestTemplate作为客户端(并用于测试)。 我面临的问题是流式传输POST并接收响应。我该怎么做?(反问句 - 我回答这个!

  • 问题内容: 我正在使用RestTemplate来调用Web服务。 如果此操作无法返回用户ID,我只会返回null,但不知道为什么。如何将实际的XML响应输出到日志? 问题答案: 根据所使用的建立HTTP连接的方法,您可以查看在实际HTTP连接类中打开日志记录。 例如,如果您使用Commons HttpClient,则可以设置 commons- httpclient项目在其日志记录做法的文档中有一整

  • 一切正常,但我不能使用RestTemplate getForEntity方法使用我的endpoint: 我应该提供什么类来成功反序列化我的实体页面?