如何在安卓设备上通过 SSL(https)下载文件

3

我有一个应用程序,它使用以下代码进行http工作,但由于安全原因,这将被更改为https,但这会导致下载失败。我尝试只更改httpURLConnectionhttpsURLConnection,但这并没有起作用。

try {

    FileOutputStream f = new FileOutputStream(directory);
    URL u = new URL(fileURL);
    HttpURLConnection c = (HttpURLConnection) u.openConnection();
    c.setRequestMethod("GET");
    c.setDoOutput(true);
    c.connect();

    InputStream in = c.getInputStream();

    byte[] buffer = new byte[1024];
    int len1 = 0 
    while ((len1 = in.read(buffer)) > 0) {
        f.write(buffer, 0, len1);
        Log.d("downloader","downloading");
    }

    f.close();
    } catch (Exception e) {
        e.printStackTrace();
        Log.d("downloader", "catch");
    }

我连接电脑时不需要任何特定的密码或其他东西,实际上,如果我在Android手机的浏览器中输入所需的HTTPS URL,它可以正常加载... 我只是无法弄清楚如何在我的应用程序中完成它。

我几乎没有安全性或证书方面的经验,所以我甚至不确定这里需要什么或者该去哪里查找。

谢谢


如果您能具体说明“未起作用”的含义,那么问题会更有帮助。您看到了什么错误消息或其他不良结果? - LarsH
1个回答

3
请查看Android文档中的HTTPS和SSL文章。他们在里面提供了一个简单的示例,如果您的HTTPS证书由受信任的CA签名(如您所写,您可以使用浏览器访问服务器),则可以使用它:
URL url = new URL("https://wikipedia.org");
URLConnection urlConnection = url.openConnection();
InputStream in = urlConnection.getInputStream();
copyInputStreamToOutputStream(in, System.out);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接