消耗 Application/pdf、Application/json 休息响应

Consume Application/pdf, Application/json rest response

如果一切顺利,我正在使用 API 和 returns pdf(application/pdf)。如果出现异常,它会 returns 一个 application/json 响应。我该如何消费这样的回应?我的回复 class 结构应该如何?

我想我可以使用

ResponseEntity<String> response
  = restTemplate.getForEntity(fooResourceUrl, String.class);

然后根据响应 header 中的 content-type 将字符串转换为 pdf 或 json。有更好的方法吗?

对于成功案例,您可以像往常一样将 PDF 响应读取为字节数组:

ResponseEntity<[]byte> response = restTemplate.getForEntity(fooResourceUrl, byte[].class);

对于失败的情况,您可以捕获 RestClientResponseException 并将返回的 JSON 作为字符串读取:

try {
   ResponseEntity<[]byte> response = restTemplate.getForEntity(fooResourceUrl, byte[].class);
} catch (RestClientResponseException e) {
   String json = e.getResponseBodyAsString();
   [...]
}