http和https协议下,http可以正常下载,但是https却不能
问题描述,在http协议下,文件是可以正常下载的,但是在https协议下,下载文件会获取不到文件。
核心代码如下:(主要是response.addHeader("Pramgma","public")和response.addHeader("Cache-Control","max-age=0")),因为,浏览器通过HTTPS下载时,默认其cache缓存是不给权限的,所以,必须先要对cache进行配置,并给与其相应权限。
public static String downloadFile(HttpServletResponse response, String fileName, boolean notIE) {InputStream stream = FileUtil.class.getClassLoader().getResourceAsStream("static/doc/" + fileName);response.setHeader("content-type", "application/octet-stream");response.addHeader("Pragma", "public");response.addHeader("Cache-Control", "max-age=0"); response.setContentType("application/octet-stream");try {String name = java.net.URLEncoder.encode(fileName, "UTF-8");if (notIE) {name = java.net.URLDecoder.decode(name, "ISO-8859-1");}response.setHeader("Content-Disposition", "attachment;filename=" + name);} catch (UnsupportedEncodingException e2) {e2.printStackTrace();}byte[] buff = new byte[1024];BufferedInputStream bis = null;OutputStream os = null;try {os = response.getOutputStream();bis = new BufferedInputStream(stream);int i = bis.read(buff);while (i != -1) {os.write(buff, 0, buff.length);os.flush();i = bis.read(buff);}} catch (FileNotFoundException e1) {// e1.getMessage()+"系统找不到指定的文件";return "系统找不到指定的文件";} catch (IOException e) {e.printStackTrace();} finally {if (bis != null) {try {bis.close();} catch (IOException e) {e.printStackTrace();}}}return "success";}
http和https协议下,http可以正常下载,但是https却不能相关推荐
- 百度富文本编辑器ueditor在https协议下无法正常插入动态地图
在浏览器https协议下,百度富文本编辑器ueditor有可能会无法正常插入动态地图.所谓"动态地图",就是在插入地图的时候,勾选右上角的"动态地图"选择框: ...
- 百度地图在http协议正常,在https协议下地图无法正常显示的解决方法
百度地图的添加方法说明: 1 到百度地图创建自己的地图 http://api.map.baidu.com/lbsapi/creatmap/index.html 2 复制好代码 经过测试百度地图在H ...
- NiFi HTTPS协议下使用REST API
NiFi HTTPS协议下使用REST API NiFi 配置了HTTPS后, 无法直接使用REST API 这时可以通过 REST API 中的 获得token, 再通过token使用REST AP ...
- 天地图服务在https协议下请求正常加载显示地图
首先把需要使用的天地图服务,如矢量地图服务地址如下: //天地图矢量服务 "http://t0.tianditu.gov.cn/vec_c/wmts?SERVICE=WMTS&REQ ...
- 如何在https协议下访问http等不安全的资源
很简单,只需一个mate标签 <meta http-equiv ="Content-Security-Policy" content="upgrade-insecu ...
- HTTP和HTTPS协议的区别
什么是HTTPS: HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议 它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息 ...
- 如何将网站升级为HTTPS协议?
基本概念: HTTP: 是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准,用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少. HT ...
- HTTP协议和HTTPS协议初探
概况 HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程. HTTP是 ...
- 老李分享:https协议
老李分享:https协议 最近我们看到很多站点使用 HTTPS 协议提供网页服务.通常情况下我们都是在一些包含机密信息的站点像银行看到 HTTPS 协议. 如果你访问 google,查看一下地址栏,你 ...
- 浅谈HTTPS以及Fiddler抓取HTTPS协议
原文 浅谈HTTPS以及Fiddler抓取HTTPS协议 最近想尝试基于Fiddler的录制功能做一些接口的获取和处理工作,碰到的一个问题就是简单连接Fiddler只能抓取HTTP协议,关键的登录请求 ...
最新文章
- canvas 文字颜色_Canvas技术概述
- 因需设岗,竞争上岗的多Agent协作的协作模式
- 第十章: 数据模型高级进阶
- python简单代码加法-Python tkinter实现简单加法计算器代码实例
- 第 2 章:初出茅庐【初级篇 - 2.3 动态规划】
- 我对“POST和GET的区别”的理解
- [LeetCode]547. Friend Circles朋友圈数量--不相邻子图问题
- cd linux给u盘安装程序,使用U盘安装CDlinux
- Spring之AOP代理模式
- 非科班学生党的2022秋招之路 -- 一路艰辛
- html手机表白弹窗,抖音弹窗表白代码怎么玩 弹窗表白制作方法与教程一览
- 富士通Fujitsu DPK750 Pro 打印机驱动
- 考研日语线上笔记(六):完型专项篇
- 虚幻浏览器插件 播放视频
- 把失败看成常态 把成功当作偶然”——与庞加莱猜想“封顶”者之一、中山大学教授朱熹平面对面
- python打开上层文件
- java 类大写_记java实体类属性名为全部为大写踩的坑(基础)
- Java Mail(发邮件)
- ROS-Melodic-Moveit 实时控制UR5机械臂
- 计算机无符号是啥,计算机编程中的无符号是什么