当有一个接口固定只会返回文件的时候,需要对返回的文件进行流式处理
/**
* 下载文件到ftp
* @param downloadUrl 下载的urlAppend
* @param filePath 文件存储路径
* @param fileName 文件名 !不能包含冒号
*/
public String downloadToFtp(String downloadUrl, String filePath, String fileName) {
RequestCallback requestCallback = request -> {
HttpHeaders headers = request.getHeaders();
headers.set("Content-Type", "application/json");
headers.set("cache-control", "no-cache");
};
// 对响应进行流式处理而不是将其全部加载到内存中
String execute = restTemplate.execute(downloadUrl, HttpMethod.GET, requestCallback, clientHttpResponse -> {
InputStream body = clientHttpResponse.getBody();
//下面是我自己的ftp工具类,上面你已经拿到流了,想做什么都可以在这个回调里写
//return ftpUtil.upload(ftp, body, fileName, filePath);
});
return execute;
}