Einzelnen Beitrag anzeigen

Getox

Registriert seit: 28. Dez 2012
155 Beiträge
 
Delphi XE3 Professional
 
#1

IdHTTPServer ohne Form

  Alt 1. Mär 2013, 11:05
Guten Morgen,

Ich habe hier grade leichte Schwierigkeiten mit dem IdHTTPServer aus Indy 10.

Ich hatte diese Komponente schon öfters erfolgreich genutzt, wenn ich sie auf mein Form gezogen habe. Jetzt möchte ich jedoch einen Webserver, der in einer Formlosen Unit verbaut ist.

Zum testen habe ich trotzdem erstmal eine Formularanwendung gemacht, weil ich da mit einem Button das Starten den Servers simulieren kann. Die HTTPServer Komponente sollte dennoch nicht auf das Formular. Dieses Projekt dient nur dazu, dass verstehe wie ich den Server so ans laufen bekomme.

Ich habe in meiner Klasse eine Servervariable angelegt und die Prozedur HTTPServerCommandGet habe ich so da aus einem anderen Projekt rauskopiert und mit Strg+Shift+c erstellt:

Delphi-Quellcode:
TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    Server: TIdHTTPServer;
    procedure HTTPServerCommandGet (AContext: TIdContext;
      ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
  end;
Der Button soll mir den Server erstellen und den Port auf 80 setzen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Server := TIdHTTPServer.Create();
  server.DefaultPort := 80;
  server.Active := true;
end;
Und Letztendlich die HTTPServerCommandGet Prozedur:

Delphi-Quellcode:
procedure TForm1.ServerCommandGet(AContext: TIdContext;
 ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
  aResponseInfo.ResponseNo := 200;
  aResponseInfo.ContentType := 'text/html';
  aResponseInfo.ContentText := 'test';
end;
Normalerweise müsste dann doch wenn ich die 127.0.0.1 im Browser aufrufe das Wort "Test" angezeigt bekommen, aber ich bekomme nur komplett weißen Inhalt im Browser zurück.
Ich vermute, dass ich beim anlegen des Servers(Server := TIdHTTPServer.Create(); ) einen Fehler gemacht habe, weil ich da als Parameter einen "aOwner" mitgeben hätte können...

Kann mir jemand meinen Fehler nennen?
  Mit Zitat antworten Zitat