Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi IdHTTPServer: eine Seite unverändert weiterleiten??? (https://www.delphipraxis.net/148106-idhttpserver-eine-seite-unveraendert-weiterleiten.html)

romber 22. Feb 2010 21:50


IdHTTPServer: eine Seite unverändert weiterleiten???
 
Hallo!

Ich habe mir einen kleinen Webserver mit TIdHTTPServer gebastelt. Ein Client sendet eine Anfrage, ich lade mit TIdHTTP eine Seite und möchte die Daten direkt an den Client weiterleiten und zwar unverändert mit dem Header und der Codierung. Egal, ob Client die Seite selbst aufruft oder über meinen HTTP-Server, es sollen exact dieselben Daten sein. Wie mache ich das?
Ich habe versucht der AResponseInfo des Server die Antwort-Headern der IdHTTP zu übergeben. Die Codierung geht trotzdem verloren.

Astat 22. Feb 2010 22:11

Re: IdHTTPServer: eine Seite unverändert weiterleiten???
 
Hallo romber, der TIdHTTPServer, wird immer einen HTTP Header hinzufügen, du solltest einen "normalen" Server verwenden.
Dann bist du zwar selber für das Protokoll, und die Datenaufbereitung zuständig,
aber dadurch kannst du alles senden was du möchtest.

Wenn du mit den Indys arbeiten willst, sieh dir mal den TIdTCPServer an, sollte in etwa das sein, was du suchst.

lg. Astat

romber 22. Feb 2010 22:52

Re: IdHTTPServer: eine Seite unverändert weiterleiten???
 
Danke für die schnelle Antwort!

Ich kann doch die Headerlisten zuerst leeren und dann mit den Headers des IdHTTP befüllen.

Delphi-Quellcode:
AResponseInfo.RawHeaders.Clear;
AResponseInfo.CustomHeaders.Clear;
Oder meinst Du, dass der IdHTTPServer trotzdem noch was da zufügt?

Astat 22. Feb 2010 23:18

Re: IdHTTPServer: eine Seite unverändert weiterleiten???
 
Zitat:

Zitat von romber
..meinst Du, dass der IdHTTPServer trotzdem noch was da zufügt?

Naja, nehme dies mal als gegeben an, wesshalb sonst, sollte es sich um eine HTTPServer Komponente handeln.
Wenn der Header weg ist, ist so eine Komponente wertlos. Dann gibt es kein Protokoll, und die Gegenstelle
kann die empfangenen Daten nicht mehr korrekt aufbereiten. Ich bin zwar kein Indy Spezialist, da ich ausschließlich
mit der Socket API arbeite, aber was ich so im Code der Indys gesehen habe, da kann ich mir nicht vorstellen,
dass dies so implementiert ist.

Du kannst dies leicht prüfen, wenn du mit "Packetyzer" oder einem anderen Network Sniffer, dir ansiehst was der Server sendet.

lg. Astat


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:20 Uhr.

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