Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Proxy für HTTP (https://www.delphipraxis.net/105309-proxy-fuer-http.html)

arbu man 19. Dez 2007 16:33


Proxy für HTTP
 
Hallo,

erstmal zu meinen vorhaben ich möchte einen Proxy erstellen der die Internet verkehr mitschneidet, leider ist die IndyHTTPProxy Komponente fehlerbehaftet deswegen suche ich nach einer anderen Lösung.

Ich dachte an eine Lösung auf der TCP Ebene: Auf Port 8080 starte ich einen TCP Server, wenn sich ein Client(Browser) an diesen Server verbindet Leitet der Server die anfrage an den Rounter? weiter und speicher diese.
Wichtig ist mir dabei das das ganze flüssig abläuft d.h. ein Stream soll schon an den CLient gesendet werden wenn dieser noch nicht vollständig herunter geladen wurde.

Würde diese Lösung funktionieren und wie (Komponenten?) lässt sie sich praktisch leicht umsetzen ?

mfg, Björn :)

Zacherl 19. Dez 2007 17:05

Re: Proxy für HTTP
 
Eigentlich brauchst du nur zwei Sockets :P Einen Server der auf Port 8080 lauscht und einen Client, der eine Verbindung zu den eingehenden Seiten herstellt. Musst halt die GET Anfragen parsen, damit du die Server Adresse bekommst.

arbu man 19. Dez 2007 19:27

Re: Proxy für HTTP
 
Danke :-D Das klappt zunächst besser als erwartet :) ich komme bis zu dem Punkt wo die Daten vom Host ankommen.

Delphi-Quellcode:
        FClient.Port := 80;
        FClient.Host := GetHost;
        FClient.OnWork := TCPClientWork;
        FClient.Connect;
        FClient.IOHandler.Write(FOut);
// Daten werden gesendet und scheinen auch zurückzukommen (die antwort)

// Die Lösung geht nicht und schein mir auch nicht sauber zu sein
        while FClient.IOHandler.Readable(1000) do begin
          Str := FClient.IOHandler.ReadLn;
          IOHandler.Write(Str);
          FProxy.E.Lines.Add(Str);
        end;
Nun wie komme ich an die Daten herran die der TCPClient empfängt welches Ereignis/Methode nehme ich da am besten ?

mfg, Björn

arbu man 21. Dez 2007 09:53

Re: Proxy für HTTP
 
*Push*


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:44 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