【问题标题】:Android DownloadManager doesn't save fileAndroid DownloadManager 不保存文件
【发布时间】:2013-12-15 18:12:06
【问题描述】:

我在使用 Android 的 DownloadManager 和 WebView 时遇到问题。有几个链接返回为当前用户生成的文件(PDF 等)。这些链接仅适用于登录用户,因此我将身份验证 cookie 传递给 DownloadManager。我可以从服务器日志中看到这正常工作:对下载 URL 的所有点击都是使用应用程序 cookie 完成的,服务器正在接受这一点并为正确的用户生成正确的文件。但是,下载管理器中的所有条目都被列为不成功。

我想我在这里遗漏了一些微不足道的东西,但我刚开始使用 Android 并没有看到它。

这是 MainActivity 的部分代码:

WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.setWebViewClient(new MyWebViewClient());
myWebView.setDownloadListener(new DownloadListener() {
    public void onDownloadStart(String url,
                                String userAgent,
                                String contentDisposition,
                                String mimetype,
                                long contentLength) {
                                    String cookie = CookieManager.getInstance().getCookie(url);
                                    DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
                                    Request request = new Request(Uri.parse(url));
                                    request.addRequestHeader("Cookie", cookie);
                                    dm.enqueue(request);
                                }
    });

如何让下载管理器下载生成的文件?

【问题讨论】:

    标签: android cookies android-webview android-download-manager


    【解决方案1】:

    在对此进行了更多工作之后,我发现了问题:似乎 android 的 DownloadManager 需要响应中出现的 Content-Length 标头,这是我没有为生成的文件发送的内容。 p>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-12
      • 2012-07-05
      • 2012-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-05
      • 2021-10-26
      相关资源
      最近更新 更多