DownloadManager con autenticación de cookies

Estoy intentando conseguir un archivo de cierre relámpago usando DownloadManager que analiza una galleta con un JSESSIONID de mi servidor. Estoy obteniendo este JSESSIONID haciendo todo mi proceso de inicio de sesión utilizando HTTPCLIENT lib y establecer una variable JSESSIONID para su uso posterior en mi solicitud DownloadManager.

Mi pedido de descarga:

DownloadManager.Request request = new DownloadManager.Request(Uri.parse(htmlUrlDownload)); request.addRequestHeader("Cookie", "JSESSIONID=" + JSESSIONID); request.addRequestHeader(Constants.USER_AGENT, Constants.TARGET_REQUEST_HEADER); request.setDescription("Baixando " + metaDado.getType()); request.setTitle("Download"); request.allowScanningByMediaScanner(); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); String nameFile = offlineUuid + ".zip"; fileName = nameFile; filePath = Environment.getExternalStorageDirectory() + File.separator + Environment.DIRECTORY_DOWNLOADS + File.separator + fileName; request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, nameFile); final DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE); final long downloadId = manager.enqueue(request); 

El problema es que nunca se inicia la descarga y COLUMN_REASON devuelve un código a ERROR_UNHANDLED_HTTP_CODE

Pero si intento descargar el mismo archivo usando un enlace de dropbox sin autenticación o usando httpclient, funciona perfectamente, ¿qué estoy haciendo mal?

¿Cómo puedo obtener un mejor error msg?

No hay nada malo en su código, parece que su servidor está respondiendo con HTTP redireccionamiento de código de staus, que está causando DownloadManager para no procesar la descarga.

Desde Documentos de Android : –

Public static final int ERROR_UNHANDLED_HTTP_CODE

Se agregó en API nivel 9 Valor de COLUMN_REASON cuando se recibió un código HTTP que el gestor de descargas no puede gestionar.

Vea el siguiente fragmento de código: –

Desde el código fuente de Android Framework DownloadManger.java

 case Downloads.Impl.STATUS_UNHANDLED_HTTP_CODE: case Downloads.Impl.STATUS_UNHANDLED_REDIRECT: return ERROR_UNHANDLED_HTTP_CODE; 

Por lo que necesita comprobar los registros de su servidor para este problema, o pasar url de archivos directos al gestor de descarga que no causa ningún redireccionamiento.

También tenga en cuenta que necesita dos permisos en su Androidmanifest.xml para que la descarga funcione como se esperaba

 <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.