Подтвердить что ты не робот

Android DownloadManager и SSL (https)

О, отлично. Там всегда что-то еще, что некоторые... Grrr...

В любом случае, я работал дни и дни, пробираясь сквозь неопределенную, неполную и противоречивую информацию Picasa, чтобы мое приложение Android могло найти изображение Picasa и загрузить его с помощью диспетчера загрузки. Так что теперь я сделал последние штрихи и нажал кнопку "запустить". Все прошло нормально, пока DownloadManager не попытался загрузить файл:

java.lang.IllegalArgumentException: Can only download HTTP URIs: https://example.com/image.jpg

Скажи, что ты шутишь. Скажите, что они не создали менеджера загрузки, который не может обрабатывать SSL...

Еще лучше, расскажите, как включить SSL-доступ в диспетчере загрузки Android.

4b9b3361

Ответ 1

У меня была такая же проблема ранее. Да, я вижу, что поддержка HTTPS уже находится в ICS, но не в 2.3.7 и ниже, но мы можем извлечь исходный код для создания DownloadManager для поддержки этого.

На основе кода примера из http://android-er.blogspot.com/2011/07/sample-code-using-androidappdownloadman.html я сделал демо с извлеченным DownloadManager для поддержки HTTPS.

Здесь вы можете найти пример кода https://github.com/alvinsj/android-https-downloadmanager-demo, просто изменив URL-адрес на ваш https-адрес.

Ответ 3

Я нашел очень легкое решение для этого:

request = new DownloadManager.Request(sourceUrl.replace("https://", "http://"))

Удивительно работала для всех URL-адресов https, которые я пробовал. Я не уверен в безопасности https, но нет исключения, и файл загружается правильно.