消耗 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();
[...]
}
如果一切顺利,我正在使用 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();
[...]
}