Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Indy und Quelltext (https://www.delphipraxis.net/122799-indy-und-quelltext.html)

b00gie 22. Okt 2008 09:14


Indy und Quelltext
 
Hallo zusammen,

also ich hab das hier oft gesucht und öfters in meinen anderen Beiträgen angesprochen aber irgendwie kann mir keiner helfen O.o


Ich hab folgendes Problem,
wenn ich mit IdHTTP und Get auf eine Seite zugreife und diese dann Daten zurückliefert, wie kann ich diese abrufen? Also sprich, ich brauche immer die Daten die zurückkommen wenn die Seite sich ändern. Mit Fast NMHTTP geht das ja einfach über NMHTTP1.Body (Das sind die Daten) und die kann ich dann immer im OnReceivedData (oder so ähnlich) anfangen. Wie geht das mit Indy? Ich denke mal das dafür den Event OnRedirect brauchen werde und HandleRedirect muss ich auch aktivieren, schon klar. Aber womit kann ich die Daten abrufen?



mfG
Niko^^

Klaus01 22. Okt 2008 09:23

Re: Indy und Quelltext
 
Guten Morgen,

die Daten findest Du im Parameter AResponseContent.

procedure Get(AURL: string; const AResponseContent: TStream); overload;

function Get(AURL: string): string; overload;
Oder er wird Dir als String zurückgegeben.

Grüße
Klaus

b00gie 22. Okt 2008 09:35

Re: Indy und Quelltext
 
versteh ich nicht ganz.

Also mal ein direcktes Beispiel:
Gehen wir von einem OnlineChat aus. So...
IdHTTP1 verbindet jetzt mit dem Chat und sobald einer schreibt ändert sich ja was am Quelltext, Indy realisiert das und es sollte sowas rauskommen:
1.Im Chat steht z.B: (b00gie) Test 123...
2.Als Quelltext sollte Indy dann zurückliefern <font color=#FF0000>(b00gie) Test 123...</font>

SO: Mein Ziel ist es die Daten, die gerade ankommen, sprich wenn einer im Chat was schreibt, abzufangen. Ich habe das immer mit FastNet so realisiert

Delphi-Quellcode:
procedure TForm1.NMHTTP1PacketRecvd(Sender: TObject);
var
  data:String;
begin
  data:=NMHTTP1.Body;
end;
heißt: Sobald neue Daten da sind, kann ich diese sofort in der Varibale data auslesen,parsen usw....

sowas würde ich nun gerne mit Indy realisieren, ist das überhaupt möglich?
In Indy kannst du ja z.B.
Delphi-Quellcode:
Memo1.Text := IdHTTP1.Get('http://www.xyz.de/');
ausführen, aber ich kann ja nicht im "OnRedirect" Indy dauzu auffordern immer zu einer Seite zu connecten

b00gie 22. Okt 2008 11:21

Re: Indy und Quelltext
 
*PUSH*
und schon wieder endets wie bei meinen Beiträgen, keiner Antwortet mehr^^

Daniel 22. Okt 2008 11:48

Re: Indy und Quelltext
 
Etwas mehr als zwei Stunden musst Du uns schon geben. :roll:

"Pushen" ist hier gar nicht gern gesehen, im Wiederholungsfalle lösche ich wahlweise den Beitrag oder gleich den gesamten Thread.

inherited 22. Okt 2008 11:52

Re: Indy und Quelltext
 
HTTP ist "verbindungslos", das heißt es bleibt keine Verbindung dauerhaft bestehen. Der Client verbindet sich, holt sich die Daten und trennt die Verbindung sofort wieder. Das heißt der Client bekommt garnicht mit, ob sich was ändert, wenn er nicht selber immer wieder nachfragt, oder das ganze zusätzlich mit Späßchen wie Java realisiert wird.
Die einzige Möglichkeit die mir einfällt einen HTTP-Chat zu realisieren ist das HTTP-Refresh meta-tag, mit dessen Hilfe dem Client mitgeteilt wird, nach X Sekunden eine bestimmte Seite zu laden. So macht es IMHO auch der DP-Chat. Das musst du aber selber rausparsen, das macht Indy nicht von alleine, und das ist auch gut so. Wenn du weißt, dass er eh immer nach X Sekunden die gleiche Seite lädt, kannst du das ganze auch per Timer realisieren, also alle X Sekunden die Seite mit TIdHTTP.Get laden und den Inhalt auf Veränderung zum letzten Aufruf prüfen.

(Bitte pushe erst nach 24 Stunden. Es ist ein Forum und kein Chat, und nicht jeder hat Werktags Vormittags Zeit, in der DelphiPraxis aktiv zu sein)

Volle 22. Okt 2008 12:06

Re: Indy und Quelltext
 
am besten waere es mit Head erstmal zu schauen ob sich ueberhaupt was geaendert hat. So geht es schneller und es wird auch noch traffic gespart.

b00gie 22. Okt 2008 13:38

Re: Indy und Quelltext
 
hm ich mach ja garkein Chat. Den gibts ja schon. Ich schreibe nur einen Clienten für den Chat und er läuft doch und über NMHTTP1.Body holt er sich doch immer automatisch die neusten Daten ohne das ihm was sagen muss oder so. Nur würde das gerne mit Indy realisieren, weil das paar nützliche Extras hat was das FastNet nicht bietet

Volle 22. Okt 2008 13:43

Re: Indy und Quelltext
 
ich denke nicht dass das mit den Indys klappt.

Wie gesagt, mit Head nachschauen ob sich die Datei geaendert hat und ggf. mit Get runterladen.
rauszufiltern was sich geaendert hat duerfte nich allzu schwer sein.

inherited 22. Okt 2008 14:57

Re: Indy und Quelltext
 
DU solltest vielleicht erstmal eine ordentliche Problemspezifikation aufstellen, sonst versteht hier niemand was du eigentlich erreichen möchtest. Womöglich auch den Link zu dem besagten Chat, sodass wir uns ein Bild davon machen können, oder zumindest eine konkrete Beschreibung der Technik, die eingesetzt wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:21 Uhr.
Seite 1 von 2  1 2      

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