2014-09-04 2 views
7

Я хочу использовать android downloadManager для загрузки файлов; Но URL-адрес находится в базовой аутентификации http. И я могу получить имя пользователя и пароль в приложении. Что делать, чтобы загружать файлы с моего хоста?как android downloadManager сделать http basic authentication

DownloadManager downloadManager = (DownloadManager) appContext.getSystemService(Context.DOWNLOAD_SERVICE); 
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url)); 
downloadManager.enqueue(request); 

Это мой код. Я хочу загрузить файл через «url»; Но для этого нужна HTTP-аутентификация. Я хочу знать, как добавить проверку подлинности, как это:

httpClient.getState().setCredentials(new AuthScope(HOST, 80), new UsernamePasswordCredentials(user.getEmail(), user.getPassword())); 
+0

Ваш вопрос слишком широкий, попытаться сузить к тому, что вы точно пытаетесь достичь и что вы Пробовал до сих пор – bhargavg

ответ

13

Вы можете использовать метод DownloadManager.Request.addRequestHeader(String header, String value) на вашем request объекта вручную добавить HTTP-Authorization заголовок.

Подробнее о формате этого заголовка вы можете узнать по адресу Wikipedia, но в основном вы просто берете имя пользователя и пароль, присоединяете их к символу двоеточия: «, а затем base64-кодируете результат.

После того, как у вас есть закодированные учетные данные, добавьте их к DownloadManager.Request объекта с:

request.addRequestHeader("Authorization", "Basic " + encodedCredentials); 
+0

Привет, я пытаюсь с этим решением, и мне это не удается .. Мой код: – Cristina