我的下载请求:
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,它的工作完美,我做错了什么?
如何获得更好的消息错误?
解决方法 您的代码没有任何问题,似乎您的服务器正在使用http重定向状态代码进行响应,这导致DownloadManager无法处理下载.来自AndroID文档: –
public static final int ERROR_UNHANDLED_http_CODE
Added in API level 9 Value of ColUMN_REASON when an http code was
received that download manager can’t handle.
见下面的代码片段: –
来自AndroID Framework源代码DownloadManger.java
case Downloads.Impl.STATUS_UNHANDLED_http_CODE: case Downloads.Impl.STATUS_UNHANDLED_REDIRECT: return ERROR_UNHANDLED_http_CODE;
因此,您需要检查服务器日志中是否存在此问题,或者将直接文件URL传递给下载管理器,该管理器不会导致任何重定向.
另请注意,AndroIDmanifest.xml中需要以下两个权限才能下载,以便按预期工作
<uses-permission androID:name="androID.permission.INTERNET"/><uses-permission androID:name="androID.permission.WRITE_EXTERNAL_STORAGE"/>总结
以上是内存溢出为你收集整理的android – 带有cookie身份验证的DownloadManager全部内容,希望文章能够帮你解决android – 带有cookie身份验证的DownloadManager所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)