http请求下载

@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();
            }
        }
    }

你可能感兴趣的:(http请求下载)