java后台通过http请求下载文件,直接反馈给前端
public void downLoad(HttpServletResponse response,String HTTP_URL, String filename) {
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
URL url = new URL(HTTP_URL);
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(5000);
connection.setReadTimeout(6000);
connection.connect();
int responseCode = connection.getResponseCode();
System.out.println("responseCode=" + responseCode);
if (responseCode == 200) {
InputStream is = connection.getInputStream();
bis = new BufferedInputStream(is);
response.reset();
response.setContentType("application/x-msdownload");
response.setHeader("Content-Disposition", "attachment;filename=".concat(new String(filename.getBytes("GBK"), "ISO-8859-1")));
OutputStream fos = response.getOutputStream();
bos = new BufferedOutputStream(fos);
boolean b = false;
byte[] byArr = new byte[1024];
int b1;
while((b1 = bis.read(byArr)) != -1) {
bos.write(byArr, 0, b1);
}
bos.flush();
}
connection.disconnect();
} catch (Exception var21) {
var21.printStackTrace();
} finally {
try {
if (bis != null) {
bis.close();
}
if (bos != null) {
bos.close();
}
} catch (IOException var20) {
var20.printStackTrace();
}
}
}