2013-04-05 181 views
4

我想使用DownloadManager从我的服务器解析与JSESSIONID的cookie的zip文件。我得到了这个JSESSIONID,使用HTTPCLIENT lib进行我所有的进程登录,并设置一个变量JSESSIONID供以后在我的DownloadManager请求中使用。DownloadManager与Cookie身份验证

我的下载请求:

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); 

的问题是,下载永远不会启动和COLUMN_REASON返回代码ERROR_UNHANDLED_HTTP_CODE

但是,如果我尝试使用Dropbox的链接来下载同一个文件,而无需身份验证或使用httpclient,它是完美的,我做错了什么?

如何获得更好的味精错误?

回答

4

您的代码没有错,好像您的服务器正在响应HTTP重定向staus代码,这是导致DownloadManager无法处理下载。

从Android电子文档: -

公共静态最终诠释ERROR_UNHANDLED_HTTP_CODE

在API级别9 COLUMN_REASON价值当HTTP代码为 收到了下载管理器无法处理。

请参见下面的代码片段: -

于Android Framework的源代码DownloadManger.java

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

所以你需要检查你的服务器日志针对此问题,或通过直接文件链接直接下载经理不会导致任何重定向。

同时请注意,你需要下面两种权限在AndroidManifest.xml中下载如预期

<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
+0

做ü检查服务器日志工作? – Akhil 2013-04-15 17:47:49

+0

我无法访问它。当我说我的服务器时,是我使用的服务器,是否明白? :( – 2013-04-16 13:51:24

+0

反正重定向在下载管理器中不受支持,并且由于重定向,您的下载请求失败。** [此链接可能对您有用](http://stackoverflow.com/a/13212978/1677824)** .. – Akhil 2013-04-16 15:47:25