从下载地址读取输入流,然后写入HttpServletResponse对象:
public void download(String registerNo, String debtType, String nameorNo, HttpServletResponse httpServletResponse) {
Map<String, Object> keyValues = new HashMap<>();
keyValues.put("username", userName);
keyValues.put("password", password);
keyValues.put("registerNo", registerNo);
keyValues.put("debtType", debtType);
keyValues.put("nameorNo", nameorNo);
try (OutputStream out = httpServletResponse.getOutputStream(); InputStream inputStream =
HttpUtils.getByteResult(globalUrl + downUrl, null, keyValues, null)){
String fileName = new StringBuilder(nameorNo).append(".zip").toString();
httpServletResponse.setContentType("application/x-download;charset=utf-8");
httpServletResponse.setHeader("Content-Disposition", "attachment;fileName="+ URLEncoder.encode(fileName, "UTF-8"));
byte[] buffer = new byte[1024];
int length;
while((length = inputStream.read(buffer)) > 0){
out.write(buffer, 0, length);
}
} catch (IOException e) {
log.error("下载失败:{}", e);
}
}