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?