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

После некоторой дополнительной работы над этим я нашел проблему: кажется, что DownloadManager для Android Android нуждается в заголовке Content-Length, присутствующем в ответе, то, что я не отправлял для своих сгенерированных файлов.