Android 安卓浏览器don';t从HTTPS自签名认证服务器下载文件
我们有一个tomcat Web应用程序,该应用程序已通过认证。当用户点击“帮助”按钮时,就会下载pdf文件,在pc浏览器中,它可以工作,但在android系统中,它会在指定时间内保持下载状态 我在Spring控制器中使用以下代码:Android 安卓浏览器don';t从HTTPS自签名认证服务器下载文件,android,spring,browser,download,Android,Spring,Browser,Download,我们有一个tomcat Web应用程序,该应用程序已通过认证。当用户点击“帮助”按钮时,就会下载pdf文件,在pc浏览器中,它可以工作,但在android系统中,它会在指定时间内保持下载状态 我在Spring控制器中使用以下代码: URL url = servletContext.getResource("/manual/Manual.pdf"); response.setHeader("Content-Disposition", "attachment; filename=\"Manual.
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.
感谢您的帮助。证明证书出现了问题,因为它是自动生成的。我们使用HTTP而不是HTTPS进行下载,这很有效:D您是否检查了android设备的时间设置是否正确?我遇到了类似的SSL问题,并通过修复我的设备时钟解决了它。是的,时间是正确的,我使用模拟器,时间配置相同。服务器也有相同的时间。错误中显示“找不到证书路径的信任锚点”。您可能需要检查您的认证路径,这可能是服务器问题,而不是客户端问题。现在的浏览器非常聪明,可以解决任何编码问题之类的问题。你可能有一个损坏的证书url。是的,看起来是这样,但网站运行良好,只有当我点击获取pdf时问题才会发生,在pc浏览器(使用chrome测试)中工作良好正如我所说,我遇到过类似的问题,虽然我在浏览器上没有问题,但我的客户端应用程序内部有问题。如今,大多数编码问题都被常见的浏览器所覆盖。您可以检查url上是否有额外的空白或任何内容。