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");
    }

没有特定的密码或任何需要从我的计算机连接的东西,事实上,如果我去安卓手机上的浏览器并输入有问题的 HTTPS URL,它会很好地加载它......我只是不知道该怎么做在我的应用程序中。

我几乎没有安全或证书或任何其他方面的经验,所以我什至不确定这里需要什么或在哪里查看。

谢谢

4

1 回答 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);
于 2013-07-31T15:48:08.617 回答