2014-09-04 12 views
7

Voglio usare android downloadManager per scaricare i file; Ma l'URL è in autenticazione di base http. E posso ottenere il nome utente e la password nell'applicazione. Cosa devo fare per scaricare file dal mio host?come android downloadManager fare l'autenticazione di base http

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

Questo è il mio codice. Voglio scaricare il file tramite "url"; Ma ha bisogno di autenticazione di base http. Voglio sapere come aggiungere l'autenticazione in questo modo:

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

La tua domanda è troppo ampia, cercare di limitare a cosa stai esattamente provando a realizzare e quello che hai provato fino ad ora – bhargavg

risposta

13

È possibile utilizzare il metodo DownloadManager.Request.addRequestHeader(String header, String value) sul request oggetto per aggiungere manualmente il HTTP Autorizzazione intestazione.

È possibile leggere ulteriori informazioni sul formato di questa intestazione su Wikipedia, ma in pratica basta prendere il nome utente e la password, unirli con i due punti ':' carattere, quindi base64-codificare il risultato.

Una volta che avete le credenziali codificati, aggiungerli all'oggetto DownloadManager.Request con:

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

Ciao, ci sto provando con questa soluzione e non ci riesco .. Il mio codice: – Cristina

Problemi correlati