Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi TIdHTTP und Javascript / Refresh (https://www.delphipraxis.net/71448-tidhttp-und-javascript-refresh.html)

Win32.API 15. Jun 2006 13:10


TIdHTTP und Javascript / Refresh
 
Hi,
unterstuetzt die TIdHTTP Komponente Javascript? :gruebel:

Ich bekomme immer den Fehler (von der Website), dass Javascript ausgeschaltet ist.

Kann man es anschalten, simulieren oder gibt es Alternative Komponenten die das unterstuetzen?

//Edit:


Das Problem ist, das es auf der Website einen Counter gibt, der die Sekunden runter zaehlt. (20,19,18,...) und wenn er bei 0 ist

wird eine andere Website geladen, funktioniert bei dem TWebbrowser auch einwandfrei, aber mit idhttp will es nicht so ganz.

Vieleicht unterstuetzt idhttp ja Javascript, aber es aktuallisiert den Sourcecode nicht.

Gibt es eine Moeglichkeit den Aktuellen Sourcecode von einer Website erneut auszulesen, ohne das man die genaue URL kennt?

Ich sende etwas mit .post() an die Seite und werde weitergeleitet, deswegen ist mit die genaue URL nicht bekannt.




danke & ciao

marabu 15. Jun 2006 16:06

Re: TIdHTTP und Javascript / Refresh
 
Hi,

Zitat:

Zitat von Win32.API
unterstuetzt die TIdHTTP Komponente Javascript?

nein.

Zitat:

Zitat von Win32.API
Kann man es anschalten, simulieren oder gibt es Alternative Komponenten die das unterstuetzen?

bevor du dem Indy HTTP-Client beigebracht hast, wie er mit JavaScript umgehen muss, hast du dein Programm mit der Komponente TWebBrowser realisiert.

Grüße vom marabu

Win32.API 15. Jun 2006 16:38

Re: TIdHTTP und Javascript / Refresh
 
Danke fuer deine Antwort.

Ich habs schon mit dem TWebbrowser realisiert, noch bevor ich mir den Idhttp client angeguckt habe :lol:.

Das Problem ist beim TWebBrowser ist aber, dass der Datei-Download immer von IE(TWebbrowser) ausgefuehrt wird, ich moechte das

gerne manuell machen. Gibt es denn eine Moeglichkeit die download funktion des TWB durch eine eigene zuersetzten?

ciao

marabu 15. Jun 2006 16:48

Re: TIdHTTP und Javascript / Refresh
 
Na klar.

Bei interaktivem Einsatz kannst du im Ereignis OnBeforeNavigate() dazwischenfunken. Ansonsten extrahierst du den benötigten Link und verwendest Indy zum Herunterladen.

marabu

Win32.API 15. Jun 2006 16:53

Re: TIdHTTP und Javascript / Refresh
 
Zitat:

Ansonsten extrahierst du den benötigten Link und verwendest Indy zum Herunterladen.
Habe ich schon probiert, er gibt mir immer den error aus "HTTP/1.1 404 Not Found.", der link stimmt aber.

Zitat:

Bei interaktivem Einsatz kannst du im Ereignis OnBeforeNavigate() dazwischenfunken.
Wie meinst du das mit "dazwischenfunken" ? Hoert sich aber gut an :-D

marabu 15. Jun 2006 16:59

Re: TIdHTTP und Javascript / Refresh
 
Wenn der Download durch einen Klick auf einen Link initiiert wurde, dann kannst du im genannten event handler Cancel auf True setzen und den Download in die eigene Hand nehmen. Ich denke aber, dass du automatisch Laden möchtest, also sollten wir vielleicht lieber den Fehler auf deinem anderen Weg finden.

marabu

Win32.API 15. Jun 2006 17:08

Re: TIdHTTP und Javascript / Refresh
 
Ich denke mal das Problem ist, das die Seite checkt ob der download wirklich auch von dem "downloader" (wb, idhttp) initialisiert

wurde, und wenn nicht wird der download verweigert. Ich habe leider keine Ahnung wie eine Webseite sowas ueberpruefen koennte.

Und wie man der Seite vormachen kann, das der IdHttpClient den download gestartet hat und nicht der WB.

marabu 15. Jun 2006 17:23

Re: TIdHTTP und Javascript / Refresh
 
Vielleicht hast du dich vorher anmelden müssen und es gibt eine session-id die versteckt mitgeführt wird - oder es wurde ein cookie gesetzt - oder es wird der Referer überprüft. Zumindest diese Fälle lassen sich mit Indy behandeln.

marabu

Win32.API 15. Jun 2006 17:39

Re: TIdHTTP und Javascript / Refresh
 
Zitat:

Vielleicht hast du dich vorher anmelden müssen und es gibt eine session-id die versteckt mitgeführt wird - oder es wurde ein cookie gesetzt - oder es wird der Referer überprüft. Zumindest diese Fälle lassen sich mit Indy behandeln.
Angemeldet habe ich mich nicht, ein Cookie wird zwar gesetzt der spielt aber keine Rolle.

Kann man den referer aus einem Wb auslesen? Setzen ist ja mit idhttp kein Problem. // TWebbrowser.OleObject.Document.referrer

Es gibt zwar eine sessionid, die ist aber bei jedem Klick auf den button gleich, sie aender sich nur wenn man erneut die 20

sekunden wartet.



//Edit: Cookie und referrer haben damit nix zu tun. Wie kann man denn die SessionID bei dem Idhttpclient simulieren?

marabu 15. Jun 2006 18:54

Re: TIdHTTP und Javascript / Refresh
 
Die SessionId kann im URL oder als hidden field mitgeführt werden. Wenn du mit FireFox unterwegs bist, dann kannst du recht einfach die page info untersuchen um Hinweise zu erhalten.

marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:57 Uhr.
Seite 1 von 2  1 2      

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