如何从restTemplate交换方法获取通用地图作为响应?

sta*_*n10 4 rest resttemplate spring-boot

我们有一个休息服务,它在类型为 的映射中返回一个字节数组。如果我在没有泛型的情况下使用 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);
Run Code Online (Sandbox Code Playgroud)

上面的代码将给出一个编译问题,因为返回类型是地图。

cas*_*lin 14

使用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);
Run Code Online (Sandbox Code Playgroud)