Hi,
bei URLDownloadToFile werden noch andere Werte bei Request gesetzt, die man bei
Indy erst manuell setzen muss sprich der Rapidshare Server denkt, du bist ein Bot
Delphi-Quellcode:
with IdHTTP
do
begin
Request.Accept := '
text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1';
Request.AcceptCharSet := '
iso-8859-1, utf-8, utf-16, *;q=0.1';
Request.AcceptEncoding := '
deflate, gzip, identity, *;q=0';
Request.Connection := '
Keep-Alive';
Request.ContentType := '
application/x-www-form-urlencoded';
Request.UserAgent := '
Opera/9.80 (Windows NT 6.1; U; de) Presto/2.5.22 Version/10.51';
// Man kann auch den komischen Useragent mit F beginnend nehmen ...
end;
Außerdem würde ich immer noch den Request.Referer setzten.
Ich habe im Anhang mal eine Klasse die von TIdHTTP abgeleitet wird und womit ich dann halt diese "Standardwerte" setzte, außerdem solche Spezialitäten wie CookieManager, gZIP, HTTP-Proxy, SOCKS und SSL... Weil wenn man mehrere Internetabfragen hat lohnt sich sowas
Achja ich habe eine
DLL zur Entschlüsselung von allen Containern, sowas würde ich nicht auf einen Server auslagern.
Und ^^ du arbeitest die ganze Zeit mit copy um Informationen aus Strings zu Filter, dafür empfehle ich mit Regulären Ausdrücken zu arbeiten, einmal eingearbeitet und verstanden sparst du Lichtjahre