Ist es möglich, Cookies in einem Android DownloadManager zu senden?

8

Ich verwende die android DownloadManager API, um Dateien vom Server meiner Schule herunterzuladen. Ich habe die Erlaubnis, auf diese Dateien mit einem Login zuzugreifen, aber was ich nicht herausfinden konnte, ist, wie ich Cookies mit meinem DownloadManager.Request abschicke. Der Download-Code ist unten. dm ist ein globales DownloadManager , und url ist ein PHP-Download-Skript, das zu einer Datei umleitet, normalerweise pdf / doc / etc.

%Vor%

Das funktioniert gut, aber ich bekomme eine HTML-Datei heruntergeladen, die die Anmeldeseite meiner Schulwebseite ist. Offensichtlich muss ich die Session-Cookies des Benutzers irgendwie übermitteln, aber ich sehe keine Möglichkeit, dies in der Dokumentation zu tun.

    
Logiraptor 07.06.2012, 21:34
quelle

1 Antwort

18

Cookies werden über einen HTTP-Header (mit dem passenden Namen "Cookie") gesendet, und zum Glück, DownloadManager.Request hat eine Methode , um eigene Header hinzuzufügen.

Was Sie also tun möchten, ist etwa so:

%Vor%

Sie müssen "Inhalt" natürlich durch den eigentlichen Cookie-Inhalt ersetzen. Die CookieManager -Klasse sollte nützlich sein, um das aktuelle Cookie für die Site zu erhalten, aber falls das fehlschlägt, Eine andere Möglichkeit wäre, dass Ihre Anwendung eine Anmeldeanforderung einreicht und den zurückgegebenen Cookie abholt.

    
Michael Madsen 07.06.2012, 21:51
quelle

Tags und Links