我正在使用JSP和Spring开发一个web应用程序。
在我的控制器中,我有一个下载APK文件的操作:
@Controller("ApplicationController")
public class ApplicationController {
....
@RequestMapping(value = "/getApp", method = RequestMethod.GET)
public void getApp(HttpServletRequest request, HttpServletResponse response) {
FileInputStream fis = new FileInputStream("D:\\test.apk");
byte[] bytes = IOUtils.toByteArray(fis);
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=test.apk");
response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
response.setHeader("Pragma", "no-cache");
response.setHeader("Expires", "0");
response.getOutputStream().write(bytes);
response.flushBuffer();
}
....
}
在一个页面中,我有一个链接来调用这个操作:
<a href="/getApp" target="_blank">Get App</a>
此链接适用于PC浏览器,但在Chrome等Android浏览器中使用时,下载失败。
添加:
在此之前,我通过SSL连接使用该链接,但我已经通过一个简单的http连接进行了测试,并且成功了。我认为这是我的SSL连接和Android下载管理器的一个问题!
任何帮助,我们都会提前表示感谢。
发布于 2016-11-05 23:54:37
几天后,作为总结,我想当我们在android浏览器中点击一个下载链接时,这个链接将由Android下载管理器(第三方应用程序)打开,因此这个应用程序无法通过SSL连接安全可靠地连接到我的服务器,因为没有经过验证的证书。
但是,我已经通过将下载HTTPS请求切换到HTTP请求来下载文件来解决我的问题。
https://stackoverflow.com/questions/40336832
复制相似问题