我有一个使用以下代码处理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网址,它加载它很好...我只是无法弄清楚如何在我的应用程序中执行此操作。
我几乎没有安全或证书或其中任何经验,所以我甚至不确定这里需要什么或在哪里看。
由于
答案 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);