android – 带有cookie身份验证的DownloadManager

android – 带有cookie身份验证的DownloadManager,第1张

概述我正在尝试使用DownloadManager从我的服务器解析带有JSESSIONID的cookie来获取一个zip文件.我正在使用HTTPCLIENT lib获取此JSESSIONID所有进程登录并设置变量JSESSIONID以供稍后在我的DownloadManager请求中使用. 我的下载请求: DownloadManager.Request request = new DownloadMana 我正在尝试使用DownloadManager从我的服务器解析带有JsESSIONID的cookie来获取一个zip文件.我正在使用httpCLIENT lib获取此JsESSIONID所有进程登录并设置变量JsESSIONID以供稍后在我的DownloadManager请求中使用.

我的下载请求:

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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1129217.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存