Android DownloadManager и SSL (https) - PullRequest
18 голосов
/ 12 ноября 2011

О, отлично.Всегда есть что-то еще, что-то ... Grrr ...

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

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

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

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

Ответы [ 3 ]

7 голосов
/ 10 мая 2012

У меня была такая же проблема ранее.Да, я вижу, что поддержка 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 на URL-адрес на основе https.

1 голос
/ 12 ноября 2011

Да, похоже, DownloadManager поддерживает только протокол HTTP: http://www.google.com/codesearch#cZwlSNS7aEw/frameworks/base/core/java/android/app/DownloadManager.java&exact_package=android&q=Can%20only%20download%20HTTP%20URIs&type=cs&l=343

Я тоже разочарован, поскольку просто хотел использовать его на сайте HTTPS.

0 голосов
/ 28 июня 2012

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...