如何在android上下载ssl(https)文件

时间:2013-07-31 15:36:13

标签: android http https download

我有一个使用以下代码处理http的应用程序,但出于安全原因,这个应用程序已更改为https,但这会导致下载失败。我尝试将httpURLConnection更改为httpsURLConnection,但这不起作用。

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网址,它加载它很好...我只是无法弄清楚如何在我的应用程序中执行此操作。

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

由于

1 个答案:

答案 0 :(得分:3)

查看HTTPS and SSL Article within the Android documentation。他们有一个简单的例子,因为您的HTTPS证书是由受信任的CA签名的(当您写道,您可以使用具有此类签名证书的浏览器的服务器时):

URL url = new URL("https://wikipedia.org");
URLConnection urlConnection = url.openConnection();
InputStream in = urlConnection.getInputStream();
copyInputStreamToOutputStream(in, System.out);