我们有一个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.
感谢您的帮助。
答案 0 :(得分:1)
原因是证书因为自动生成而产生问题。我们使用HTTP而不是HTTPS来下载,这很有效:D