如何获取通用地图作为来自 restTemplate 交换方法的响应?
Posted
技术标签:
【中文标题】如何获取通用地图作为来自 restTemplate 交换方法的响应?【英文标题】:How to get a generic map as a response from restTemplate exchange method? 【发布时间】:2019-06-05 03:07:09 【问题描述】:我们有一个 rest 服务,它返回一个类型为 map 的字节数组。如果我在没有泛型的情况下使用 Map,则在接收响应时,字节数组数据将转换为字符串。是否可以仅从服务器发送字节数据,如果可以,如何使用 RestTemplate 从客户端检索该数据?
ResponseEntity<Map<String, byte[]>> result result = restTemplate.exchange("http://localhost:8085/api/fetchContent?Id=" + contentId+"&userName=trump", HttpMethod.GET, entity, Map.class, params);
上面的代码会产生一个编译问题,因为返回类型是一个映射。
【问题讨论】:
【参考方案1】:使用ParameterizedTypeReference<T>
:
ParameterizedTypeReference<Map<String, byte[]>> responseType =
new ParameterizedTypeReference<Map<String, byte[]>>() ;
ResponseEntity<Map<String, byte[]>> responseEntity =
restTemplate.exchange("http://example.org", HttpMethod.GET, entity, responseType);
【讨论】:
以上是关于如何获取通用地图作为来自 restTemplate 交换方法的响应?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Spring RestTemplate 中的对象获取列表
如何像在 RestTemplate 中一样从 WebClient 获取访问令牌?