Android浏览器不会通过HTTPS自签名认证下载文件

时间:2014-03-12 15:00:48

标签: android spring browser download

我们有一个tomcat webapp自我签名与认证。当用户点击帮助按钮然后下载pdf时,在PC浏览器中它可以工作,但在android中它会保持下载为无限时间。

我在Spring控制器中使用此代码:

URL url = servletContext.getResource("/manual/Manual.pdf");

response.setHeader("Content-Disposition", "attachment; filename=\"Manual.pdf\"");
response.setContentType("application/octect-stream");
response.setContentLength(url.getFile().length());


try
{
        InputStream fis = url.openStream();
        OutputStream out = response.getOutputStream();
        IOUtils.copy(fis, out);
        out.flush();

}catch(IOException ioe)
{
        logger.error(ioe);
}

我们使用的是https和9443端口。

我在android中的logcat中遇到了这个错误:

Application: android.process.media
Tag: DownloadManager
Text: Aborting request for download 23: 
      while trying to execute request: javax.net.ssl.SSLHandshakeException: 
      java.security.cert.CertPathValidatorException: 
      Trust anchor for certification path not found.

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

原因是证书因为自动生成而产生问题。我们使用HTTP而不是HTTPS来下载,这很有效:D