@ApiOperation(value = "二维码http方式下载", notes = "二维码http方式下载", httpMethod = "GET")
@RequestMapping(value = "qrCode/download/{url}", method = RequestMethod.GET)
public void fileHttpDownload(HttpServletResponse response, @PathVariable("url") String url){
String fileName = StringUtils.substringAfterLast(url, "/")+ ".png";
CloseableHttpClient httpclient = HttpClients.createDefault();
try {
HttpGet httpGet = new HttpGet(url);
CloseableHttpResponse closeableHttpResponse = httpclient.execute(httpGet);
try {
System.out.println(closeableHttpResponse.getStatusLine());
HttpEntity httpEntity = closeableHttpResponse.getEntity();
long contentLength = httpEntity.getContentLength();
InputStream is = httpEntity.getContent();
response.setContentType("multipart/form-data");
response.setHeader("Content-Disposition", "attachment;fileName="+fileName);
ServletOutputStream output = response.getOutputStream();
byte[] buffer = new byte[4096];
int r = 0;
long totalRead = 0;
while ((r = is.read(buffer)) > 0) {
output.write(buffer, 0, r);
}
output.flush();
output.close();
EntityUtils.consume(httpEntity);
} finally {
closeableHttpResponse.close();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
httpclient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}