Download .txt, gesichert mit user und pw

  • Hey, ich bin verzweifelt auf der suche nach einer Lösung für mein Problem...


    Und zwar möchte ich eine Textdatei von einem Server herunterladen, der Link könnte z.B. heissen "http://ta.h2324543.stratoserver.net/download/telebook.txt".


    Bei Zugriff auf diese Datei über den Webbrowser wird man nach einem Passwort und einem Benutzer gefragt.


    Ich habe eine Lösung für einen ftp-Server gefunden, aber leider keine für meinen Fall. Passwort und Benutzer habe ich natürlich ;)


    Kann mir da einer weiter helfen?


    LG

  • Im Prinzip brauchst Du dafür einen kleinen Schmalspur-HTTP-Client.


    Du sendest Dein HTTP Request, Du bekommst einen "401: Authorization required" Header als Response, musst an Hand der übertragenen Informationen dann die korrekte Authentifizierung zusammenstricken und eine entsprechend angepassten Request senden.


    (Natürlich könntest Du das Ganze umgehen und gleich einen entsprechend angepassten Request senden. Halte ich aber für eine blöde Idee, fremde Server mit Informationen zu füttern, die er gar nicht haben will.)


    Header Deines völlig fiktiven Beispiels:


    Dein nächster Request muss dann einen entsprechenden Authentification Header beinhalten:

    Zitat

    Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==


    (Davon ausgehend, dass Dein Username 'Aladdin' und das Kennwort 'open sesame' sind…)


    Ansonsten darfst Du Dich mit der RFC2045-MIME Implementierung von Base64 rumschlagen.
    (Oben genannter Krams ist das verschlüsselte "Aladdin:open sesame")

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • Ahhhhhh, ich verstehe..... nicht... :D


    Also fast nicht..


    Ich habe noch nicht so viel Erfahrung in Androidprogrammierung.
    Ich verstehe was du sagst, weiß aber nicht wie ich es umsetzen soll.


    Bis jetzt habe ich nur eine Textdatei von einem gänzlich ungesicherten Server geladen, was ohne Probleme funktioniert, aber wie verklicker ich dem Server jetzt das ich passwort und user am Start habe?

  • Tja, sobald Du die ausgetretenen Pfade verlässt, wird es alles Andere als leicht. :P


    Und offenbar hast Du von HTTP–Kommunikation noch weniger Ahnung als ich. ;)
    Man muss nicht studiert haben, um die gesamten Spezifikationen gemäß RFC 2616 zu verstehen – aber es würde vermutlich helfen. (Wo sonst lernt man das konzentrierte Durchlesen von 176 stinkend langweiligen irgendwas Abstraktes beschreibenden Seiten?)


    Kurzfassung: Dein Client schickt eine Anfrage mit Header, der Server schickt eine Antwort mit Header.


    ['Ungesicherten' Fall]
    Anfrage: Schick Daten! <Request Header>
    Antwort: OK! <Response Header> Daten…<Response Body>
    (HTTP Status Code 200, vielleicht von gehört? Von 404 aber ganz bestimmt.)


    ['Gesicherter' Fall]
    Anfrage: Schick Daten! <Request Header>
    Antwort: Basic Authentifizierung notwendig! <Response Header>
    (HTTP Status Code 401)


    Anfrage: Schick Daten! Basic Authentifizierung: ABuiIOUuisncgQWiuHNfr7ZkOL12 <Request Header>
    Antwort: Basic Authentifizierung notwendig! <Response Header>
    (HTTP Status Code 401, da Authentifzierungsdaten da waren bedeutet es, dass sie dem Server nicht bekannt sind.)


    Anfrage: Schick Daten! Basic Authentifizierung: QWxhZGRpbjpvcGVuIHNlc2FtZQ== <Request Header>
    Antwort: OK! <Response Header> Daten…<Response Body>


    Und genau das musst Du in Deiner App nachbauen.
    Vielleicht kann Dir HttpClient da Arbeit abnehmen.

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!