Re: Rapidshare Premium Login - Wie?
Zitat:
Aber mit SSL ist es sicherer. :mrgreen: Und der Cookie sollte doch vom Cookiemanager verwaltet werden, oder? |
Re: Rapidshare Premium Login - Wie?
Hab ich auch grad gesehen. Ok, dann hilfts ja doch ansatzweise. Trotzdem würde ich HTTP Auth vorziehen. Vor allem weils den separaten Login Krams unnötig macht. Wenn Datei http://rapidshare.com/files/111111/datei.exe runtergeladen werden soll, pack ich einfach die Auth Daten mit in den HTTP Request und erhalt die Datei direkt.
|
Re: Rapidshare Premium Login - Wie?
Moment jetzt...
Das heißt wenn ich die Datei http://rapidshare.com/files/235937034/gain.dat (für das Beispiel hochgeladen) runterladen will könnte ich mittels dieser sache hier:
Delphi-Quellcode:
auch den Download starten? (bei Premiumlogin ist es wohl aber 'Login' statt 'Username')
TIdHTTP.Request.BasicAuthentication := true;
TIdHTTP.Request.Username := 'rapidshareusername'; TIdHTTP.Request.Password := 'rapidsharepassword'; Aber beim Aufruf des Links passiert ja noch nicht viel. Nach dem Klick auf 'Premium' ändert sich die URL in http://rs712.rapidshare.com/files/235937034/gain.dat. Bei Manueller Eingabe der URL in die Browserleiste baut sich aber wieder nur der Inhalt von http://rapidshare.com/files/235937034/gain.dat auf. Verrückt :roll: [snip] Ohohoh... meine Birne ist gerade voll am rühren von Informationen. Und langsam ergibt sich ein Bild. #1 die URL war falsch, so muss die aussehen: https://ssl.rapidshare.com/cgi-bin/p...WORT&german=on Wenn ich das manuell in die Browserleiste eingebe bekomme ich den Login. Das heißt ich muss meinen Quelltext dahingehend anpassen:
Delphi-Quellcode:
Das probiere ich gleich mal. Wenn das aber nicht geht dann müsste mir jemand bitte sagen wo folgender Quelltext hingepackt werden muss :)
procedure TForm1.Button1Click(Sender: TObject);
var data: TIdMultiPartFormDataStream; begin data := TIdMultiPartFormDataStream.Create; try { add the used parameters for the script } data.AddFormField('?login=', edit1.Text); data.AddFormField('&password=', edit2.Text); data.AddFormField('&german=', 'on'); { Call the Post method of TIdHTTP and read the result into TMemo } Memo1.Lines.Text := IdHTTP1.Post('https://ssl.rapidshare.com/cgi-bin/premiumzone.cgi', data); finally data.Free; end; end;
Delphi-Quellcode:
Wenn ich den nämlich einfach in meine Quelltext reinpacke dann erhält 'objects' immer eine rote wellige Linie :X
object IdSSLIOHandlerSocket1: TIdSSLIOHandlerSocket
SSLOptions.Method = sslvSSLv2 SSLOptions.Mode = sslmUnassigned SSLOptions.VerifyMode = [] SSLOptions.VerifyDepth = 0 Left = 496 Top = 65528 end object http: TIdHTTP IOHandler = IdSSLIOHandlerSocket1 MaxLineAction = maException ReadTimeout = 0 AllowCookies = True ProxyParams.BasicAuthentication = False ProxyParams.ProxyPort = 0 Request.ContentLength = -1 Request.ContentRangeEnd = 0 Request.ContentRangeStart = 0 Request.ContentType = 'text/html' Request.Accept = 'text/html, */*' Request.BasicAuthentication = False Request.UserAgent = 'Mozilla/5.0 (Windows; U; Windows NT 6.0; cs; rv:1.9.0.3) Gecko/2' + '008092417 Firefox/3.0.3' HTTPOptions = [hoForceEncodeParams] Left = 520 Top = 65528 end [edit=Phoenix]Lange Linie von Unterstrichen, die das Design zerissen haben, entfernt. Mfg, Phoenix[/edit] |
Re: Rapidshare Premium Login - Wie?
Zitat:
|
Re: Rapidshare Premium Login - Wie?
Tadaaaa :D
Habe gerade nebenbei ein wenig rumprobiert und siehe da: Die Fehlermeldung 'IOHandler value is not valid' wurde erfolgreich terminiert ^^ Ich brauchte den Code nicht zu integrieren, es reichte die auf dem Formular platzierten IdHTTP1 und IdSSLIOHandlerSocketOpenSSL1 miteinerander zu verlinken indem ich beim Objektinspektor von IdHTTP1 einfach unter Linkage - IOHandler IdSSLIOHandlerSocketOpenSSL1 eingetragen habe :zwinker: JETZT muss ich nur noch dem Programm verstehen zu geben wo sich die Programmbibliotheken befinden damit auch noch die Fehlermeldung 'Could not load SSL library' verschwindet :) Wenn ich es noch richtig in Erinnerung habe handelt es sich um die beiden .DLLs mit dem Namen 'libssl32.dll' und 'libeay32.dll' welche doch einfach nur in jenen Ordner gepackt werden müssten in welchem sich die Programm.exe befindet, oder? Habe es versucht aber noch scheinen sie nicht gefunden zu werden :( Edit meint: Das spielen mit Fake-DLLs hat mir gezeigt das es 'libeay32.dll' und 'ssleay32.dll' (statt libssl32.dll) sein muss. Nachdem ich jene runtergeladen habe wurde zusätzlich noch nach 'vsinit.dll' gefragt. Auch diese habe ich gesucht, gefunden, runtergeladen und in den Ordner zu der Programm.exe gepackt. Jedoch schreit er mir nun wieder den Fehler 'Could not load SSL library' an den Kopf. Blöd... Wenn da jetzt noch jemand den (wahrscheinlich letzen) Hinweis geben könnte wie ich das noch einrenken kann das dieser 'Could not load SSL library' Fehler verschwindet würde ich glatt platzen vor freude :party: |
Re: Rapidshare Premium Login - Wie?
Falls es jemanden interessiert: Wie man eine Datei bei Rapidshare herunterlädt und dabei einen Premium Account nutzt in weniger als 20 Zeilen Code. Keine lustigen DLLs oder sonstiges Gedöhns ;).
Delphi-Quellcode:
Disclaimer: Bevor man den Code adaptiert sollte man ihn zumindest um Fehlerhandling erweitern. Auch wäre es wahrscheinlich benutzerfreundlicher wenn man das ganze asynchron macht damit die UI nicht für die Dauer des Downloads blockiert ;).
procedure DownloadFileFromRapidshare(URL, DestinationFile, Username, Password : string);
var FileStream: TFileStream; HTTP : TIdHTTP; begin FileStream := TFileStream.Create(DestinationFile, fmCreate); HTTP := TIdHTTP.Create; HTTP.Request.BasicAuthentication := true; HTTP.Request.Username := Username; HTTP.Request.Password := Password; HTTP.HandleRedirects := true; HTTP.Get(URL, FileStream); HTTP.Free; FileStream.Free; end; |
Re: Rapidshare Premium Login - Wie?
Das klingt ja geil :D
Gleich mal testen :) EDIT: Wow, das klappt ja prima ^^ Tausendmal einfacher als die Sache mit dem SSL und für meine Zwecke ausreichend :) Kannst du mir vielleicht noch sagen was du mit "asynchron" meinst? |
Re: Rapidshare Premium Login - Wie?
Asynchron heißt eben im Thread, damit dein Programm derweil noch normal reagiert...
Zudem sind synchron wie im Beispiel keine multiplen Downloads möglich. Die Funktionalität des Tools ist so allerdings erst einmal schlechter als jeder existierende Downloadmanager für diesen Zweck. :mrgreen: |
Re: Rapidshare Premium Login - Wie?
Morgen,
danke an alle die sich die Zeit genommen haben hier Hilfe zu leisten. Habe statt dem direkten Login bei Rapidshare nun wie 0xF30FC7 geschrieben bei jeder Downloadanfrage die Zugangsdaten übersendet. Das Programm funktioniert auch soweit super :bounce1: aber bedarf jetzt noch einer optimierung ---> Download in Thread & Download nur im Arbeitsspeicher halten und löschen anstatt Festplatte anzusprechen. Doch da das mit dem eigentlichen Problem nichts mehr zu tun hat, erstelle ich dafür wenn einen eigenen Thread! Aber bisher: :dp: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz