RestTemplate调用接口如何获取输入流
由于项目需求,需要获取RestTemplate请求响应的输入流。如下:
首先需要获取一个RestTemplate实例:
RestTemplate rest = new RestTemplate();
一般的使用方式如下:
String message = rest.getForObject(url, String.class);
// or
String message = rest.postForObject(url, paramObject, String.class);
若要获取InputStream,需要使用到spring提供Resource接口和ResponseEntity类,方式如下:
ResponseEntity<Resource> entity = rest.postForEntity(url, paramObject, Resource.class);
InputStream in = entity.getBody().getInputStream();
当然,我们也可以先使用entity对响应做出判断,比如检查响应状态:
if (entity.getStatusCode().equals(HttpStatus.OK)) {
// ...
}