![]() |
TidHTTP.Get() lädt falsche seite!
hallo
ich habe ein kleines tool geschrieben, was mir einige sachen aus einer community ausliest. dieses tool hat auch ne weile gut funktioniert. habe das mit der TidHTTP komponente realisiert. nun haben die auf dem server aber einiges geändert denke ich... denn auf einmal habe ich einen wirklich merkwürdigen fehler der mich noch zum verzweifeln bringt (ist wirklich einfach von heute auf morgen gekommen) der nur(!) auf der seite auftritt. mein code sieht in etwa so aus:
Delphi-Quellcode:
und die url die ich aufrufe ist
http := TIdHTTP.Create(self);
try http.HandleRedirects := true; Memo1.Text := http.Get(edUrl.Text); finally http.free; end; ![]() der fehler ist nun aber, dass ich nicht das html von der seite bekommen, sondern dass ich das html von der config seite meines routers ausgegeben bekomme (is n speedtouch)!! der fehler tritt nur auf dem server auf. google.de wird richtig geladen. woran kann das liegen?? ich meine es lief ja vorher und ich habe nichts am source geändert. das bringt mich echt zum verzweifeln! ich hoffe, dass mir hier jemand helfen kann, weil ich weiß nicht mehr weiter! schonma danke im vorraus! :) |
Re: TidHTTP.Get() lädt falsche seite!
Mach doch einfach mal HandleRedirects aus und schaue was da zurück kommt. Vielleicht haben die ja ein Script gebastelt welches dich auf deine lokale Routerseite umleitet.
Auf jeden Fall solltest du dir die Frage stellen warum das vielleicht geändert wurde?! Beim debuggen ist mir aufgefallen das die Seite je nach UserAgent sehr verschieden Reagiert. Stell also einfach mal einen anderen UserAgent ein und sehe was passiert. |
Re: TidHTTP.Get() lädt falsche seite!
ich habe vergessen zu erwähnen, dass ich zum testen mal mit anderen funktionen (ohne indy) mir die seite geladen habe
z.B. mit
Delphi-Quellcode:
und da lädt er die seite richtig. es muß also an der indy kompo liegen. aber was können die auf dem server geändert haben
function DownloadHtml(const sURL, sLocalFileName:string): boolean;
begin Result := True; with TDownLoadURL.Create(nil) do try URL := sURL; Filename := sLocalFileName; try // Retrieve page ExecuteTarget(nil); except Result := False; end; finally Free; end; end; was diesen (ich nenne es mal) bug verursacht und wie kann ich den beheben? wie gesagt, vorher lief es 100%ig! :( und absichtlich haben die das sicher auch nicht geändert. ich kenne den betreiber der seite und der ist mit dem tool einverstanden, findet es sogar gut! edit: grade mal ausprobiert handleredirects auf false zu setzen, dann kriege ich nur die meldung "HTTP/1.1 302 Found." und ich kriege gar keinen response. also das muß schon an... |
Re: TidHTTP.Get() lädt falsche seite!
Ich hab meins mal editiert - Wenn eines funktioniert und das andere nicht, einfach den Debugger nutzen ;-)
|
Re: TidHTTP.Get() lädt falsche seite!
Hi nat,
also an Indy liegt das nicht ;) ich frage mich aber, was Du da genau machst. Du liest "einige sachen aus einer community" aus. Sowas klingt schon fast wie ein Spam-Bot, man beachte den Zweck der von Dir genannten Community. Klär das mal bitte auf, falls Du Hilfe erwartest. Gruß Assertor |
Re: TidHTTP.Get() lädt falsche seite!
ich wer bekloppt, DAS HAT FUNKTIONIERT!!!
ich würde dir am liebsten die füße küssen! :) das habe ich ja noch nie erlebt, dass der user-agent groß ne rolle spielt... hab den auf den useragent von meinem firefox gesetzt und es lief! :) vielen vielen dank, hast mir wirklich sehr geholfen!! rein aus interesse, wie hast du das rausbekommen? ich war ja auch am debuggen, aber da is mir nichts in der richtung aufgefallen. edit: nein, ich progge da kein spam-bot für. ich lese nur pn's etc aus und benachrichte den user wenn er neue bekommen hat. damit er nicht selber alle paar min ma nachgucken muß. wie gesagt, ich kenne den admin und der weiß auch von meinem tool. das is also wirklich kein problem :) (wobei ich gebe dir recht, das hätte man leicht vermuten können) |
Re: TidHTTP.Get() lädt falsche seite!
@SirThornberry: Das ist aber ziemlich unausgegoren von Euch Mods ;) Luckie stellt vorhin den nächsten "Game-Auslese-Mod"-Thread ab und Du hilfst hier bei sowas. Das geht sicherlich auch gegen die Nutzungsbedingungen der dortigen Seitenbetreiber... :roll:
Gruß Assertor P.S.: Als Nicht-Mod fehlt mir der Zeigefinger-Smiley ;) Edit: Nachtrag. nat hat ja aufgeklärt, worum es geht. Der Useragent war mir nach dem ersten Post vom TE auch schon klar. Freut mich, daß es mit Hilfe von SirThornberry jetzt geht. Ich hätte mir trotzdem ein kurzes Nachfragen vom Mod gewünscht. |
Re: TidHTTP.Get() lädt falsche seite!
Mit dem normalen UserAgetn der Indies ging bei mir gar nichts. Die Indys hingen in einem Endlosloop beim lesen der Seite (die Seite hat nach dem ersten Redirekt nichts zurück geliefert). Also kurz überlegt was der "normale" Browser alles anders macht und dies entsprechend geändert.
Wie Assertor interessiert es mich übrigens auch brennend was du da vor hast. Das auslesen und automatisieren von Handlungen in Communities verstößt fast immer gegen deren AGB. Den Tipp mit dem UserAgent hast du eigentlich nur bekommen weil ich den Inhalt auf der Seite nicht angeschaut hatte sondern nur debuggt hab wo hinn die Redirekts führen. |
Re: TidHTTP.Get() lädt falsche seite!
ich habe das aber ja auch schon in meinem 2. post aufgeklärt. von daher war das doch schon ok so :)
bin ja froh, dass mir geholfen werden konnte, da kann man auch ma beide augen zu machen ;) Zitat:
![]() und das is wirklich mit dem admin abgesprochen. den kenne ich persönlich und wird das tool vll auch ma als offizielles tool von der community anbieten. |
Re: TidHTTP.Get() lädt falsche seite!
dein zweiter post kam aber erst nach meinem ersten und mein Edit kam während du wohl den zweiten verfasst hast. :wink:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz