@sx:
Danke für die Hilfe! Ich hab Fehlerhandlungen bisher nie richtig gebraucht und wusste deshalb nicht genau, wie man sie einbaut. Habe das jetzt korrigiert.
@rollstuhlfahrer:
ja, das habe ich alles schon getan. Ich habe mir zur Hilfe mal die dekodierten Links in einem Memo anzeigen lassen. Sie sind auch wirklich korrekt!
Als Beispiel:
Ich kopiere z.B. folgenden Link im Browser:
"http://www.rapidshare.com/12345678/testdatei.rar"
Der Linkparser verarbeitet den Link korrekt und verarbeitet ihn in der
API. Dies geschieht durch
Indy.get('http://api.rapidshare.com/cgi-bin/rsapi.cgi?sub=checkfiles&files=12345678&filenames=testdatei.rar');
Die Antwort der
Api enthält dann alle wichtigen Daten für den Download, wie etwa Dateigröße, Server, usw..
So weit, so gut und bis hierhin alles korrekt (wie gesagt: kopieren geht).
Entpacke ich nun einen RSDF-Container mit eben jenem Link, dann geschieht folgendes:
Das "
Indy.post()" wird abgesetzt und erhählt die
HTML-Datei der Seite.
In dem Beispiel folgendes:
Code:
<!DOCTYPE
HTML PUBLIC "-//
W3C//DTD
HTML 4.01 Transitional //EN"
"http://www.art.org/TR/html4/loose.dtd">
<
HTML>
<HEAD>
<title>Die entschlüsselten Links:</title>
<link rel="stylesheet" href="css/style.css" type="text/css" />
<link rel="SHORTCUT ICON" href="img/PI.ico">
</HEAD>
<BODY>
<center><h1 id="logo"><img alt="Pi3625" src="img/logo.png" /></h1></center>
<h1>Die entschlüsselten Links:</h1>
<div id="links">
http://www.rapidshare.com/files/12345678/testdatei.rar<br><br>
</div>
<br><br>
<h1>Noch einen RSDF Container online entschlüsseln?</h1>
<form enctype="multipart/form-data" action="rsdf_decrypt.php" method="post">
<p>RSDF Datei: <input name="rsdffile" type="file"> <input type="submit" value="Hochladen"></p>
</BODY>
</
HTML>
Der Text wird verarbeitet und ich erhalte nur noch:
"http://www.rapidshare.com/files/12345678/testdatei.rar " als String.
Dieser String wird nun an parseLinks() weitergegeben und dort verarbeitet.
Hier geschieht folgendes:
Ich erzeuge durch die Verarbeitung wieder die nötigen Dinge für die
API-Abfrage.
Und erhalte (wie im ersten Beispiel)
Indy.get('http://api.rapidshare.com/cgi-bin/rsapi.cgi?sub=checkfiles&files=12345678&filenames=testdatei.rar');
Zumindest laut MeMo und ShowMessage. Allerdings gibt mir die
API Diesmal einen Errorstring zurück. Und das scheint mir irgendwie seltsam.
Meine Vermutung ist daher, das sich irgendwo im String ein unsichtbares Zeichen (etwa der Art #13 oder #10) befindet und dadurch der Error hervorgerufen wird... Allerdings konnte ich bisher nichts finden. Und genau das ist mein Problem...
Ich hoffe die Beschreibung hilft weiter!