1

我遇到了Android的DownloadManager和WebView的問題。有幾個鏈接返回當前用戶生成的文件(PDF等)。這些鏈接僅適用於登錄用戶,因此我將身份驗證cookie傳遞給DownloadManager。我可以從服務器日誌中看到這個工作正常:下載URL的所有命中都是使用應用程序cookie完成的,服務器正在接受此操作,併爲正確的用戶生成正確的文件。但是,下載管理器中的所有條目都列爲不成功。Android DownloadManager不保存文件

我猜這裏有一些微不足道的東西,但我剛剛開始使用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); 
           } 
    }); 

我怎樣才能讓下載管理器下載生成的文件?

回答

2

經過對此的更多工作後,我發現問題:似乎android的DownloadManager 需要 Content-Length頭部出現在響應中,這是我沒有爲我生成的文件發送的。