Einzelnen Beitrag anzeigen

GeMo

Registriert seit: 25. Jan 2006
80 Beiträge
 
Delphi 7 Professional
 
#4

AW: Problem mit Indy und der Rapidshare-Api

  Alt 27. Dez 2010, 17:45
@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&#252;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&#252;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&#252;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!
  Mit Zitat antworten Zitat