Https android下载管理器

时间:2013-10-05 12:03:22

标签: android https android-download-manager

我需要使用HTTPS下载文件,但似乎标准的DownloadManager不支持HTTPS,只支持Http。

我已经做了一些研究,发现了一个关于它的话题,但它对我没什么帮助。 来自该主题的alvinsj(https://github.com/alvinsj/android-https-downloadmanager-demo)提出了一个解决方案,他刚刚修改了源代码中的检查:

if (scheme == null || !(scheme.equals("http") ||scheme.equals("https"))) {
            throw new IllegalArgumentException("Can only download HTTP URIs: " + uri);
}

对我来说这看起来不正确,因为尽管它会起作用,但它不会成为现实。 我真的需要你的帮助!一些例子,想法将不胜感激!

感谢

2 个答案:

答案 0 :(得分:2)

我找到了答案 - 这很简单。我们将服务器调整为使用Base64身份验证,因此我只需为请求设置requestHeader:

DownloadManager.Request request = new DownloadManager.Request(downloadUri);

StringBuilder header = new StringBuilder().append("Basic ");
Pair<String, String> serverCredentials = getServerCredentials();
if (!serverCredentials.first.isEmpty()) {
try {
    header.append(EncryptionUtils.toBase64fromString(new StringBuilder().append(serverCredentials.first)
        .append(":").append(serverCredentials.second).toString()));
    request.addRequestHeader("Authorization", header.toString());
} catch (Exception e) {
    e.printStackTrace();
}
}

答案 1 :(得分:-1)

[博客]:Accepting a certificate for HTTPs on Android它可能对您有用 从https下载时,您需要信任所有ssl证书。

相关问题