AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi idHTTPServer und Client als eine art Proxy
Thema durchsuchen
Ansicht
Themen-Optionen

idHTTPServer und Client als eine art Proxy

Offene Frage von "Schubi"
Ein Thema von Schubi · begonnen am 10. Jan 2008 · letzter Beitrag vom 14. Jan 2008
 
Schubi

Registriert seit: 4. Nov 2003
Ort: Happurg (Nürnberg)
331 Beiträge
 
Delphi 2006 Professional
 
#1

idHTTPServer und Client als eine art Proxy

  Alt 10. Jan 2008, 08:45
Hallo zusammen!

Ich habe ein Programm das als HTTP-Server fungiert geschrieben.
Das läuft zuhause auf einem kleinen Server. Ich greife mit GlobeDNS darauf zu.

Im Programm enthalten ist ein Datei-Browser und einige andere fest integrierte HTML-Forms.
Das alles läuft über den Indy HTTP-Server auf Port 80.
Das funktioniert auch alles super.

Ausserdem läuft auf dem Rechner µTorrent mit dem neuen Java Web-Interface auf Port 8080.

Nun will ich, dass mein HTTP-Server bei der Anfrage 192.168.X.X:80/gui/ das Web-Interface
von µTorrent durchreicht (zu erreichen unter 192.168.X.X:8080/gui/ ).
Hintergrund ist der, dass ich auf Arbeit hinter einem Proxy sitze der nur Port 80 durch lässt.

Ich ersetze also im eingehenden Request vom HTTP-Server einfach 192.186.X.X/gui/ durch 192.168.X.X:8080/gui/ und hole mir diese URL dann mit dem Indy HTTP-Client per Client.Get().

Auch das funktioniert im Grunde schon, aber die Seite,was ich dann angezeigt bekomme ist komplett durcheinander.

Im Anhang sind zwei Bilder. Das eine, wie es aussehen müsste, und das zweite so wie es mein Server raus gibt.

Hier mal noch die Get-Routine der idHTTPServers:
Delphi-Quellcode:
procedure TForm2.ServerCommandGet(AContext: TIdContext;
  ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
var
  URL : String;
  s : String;
  Temp : String;
begin
  If Pos('/gui/',LowerCase(ARequestInfo.Document)) > 0 then begin
  //Request für das Webinterface auf 8080

    Temp := StringReplace(ARequestInfo.Document,'/gui/',':8080/gui/',[rfIgnoreCase]);
    URL := 'http://127.0.0.1'+ Temp;
    // xyz.globedns.info/gui/ -> 127.0.0.1:8080/gui/

    try
      while HTTP.Tag=1 do Application.ProcessMessages;
      HTTP.Tag:=1;
      s := HTTP.Get(URL);
      AResponseInfo.RawHeaders.Text := HTTP.Response.RawHeaders.Text;
      AResponseInfo.WriteHeader;

      AResponseInfo.ContentText := s;
      AResponseInfo.ContentType := HTTP.Response.ContentType;
      HTTP.Tag:=0;
      AResponseInfo.WriteContent;
    except
    end;
  end
  else begin
    AResponseInfo.ContentText := 'normaler Request für Port 80 (HTTP server)';
    AResponseInfo.WriteContent;
    //Hier sind noch die Verzweigungen für die ganzen anderen Dokumente
  end;
end;
Hat jemand eine Idee, warum nur dieser komische Müll bei mir ankommt?
Fehlt vieleicht CSS?
Angehängte Grafiken
Dateityp: jpg web_ui_richtig_144.jpg (9,4 KB, 25x aufgerufen)
Dateityp: jpg web_ui_falsch_163.jpg (7,3 KB, 26x aufgerufen)
Christian Schubert
Ich fange gerade erst an, den Umfang meiner Ahnungslosigkeit zu begreifen...
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:34 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