Einzelnen Beitrag anzeigen

mjustin

Registriert seit: 14. Apr 2008
3.005 Beiträge
 
Delphi 2009 Professional
 
#13

AW: Bitte um Hilfe für Webservice/Gateway/PortListener

  Alt 20. Sep 2012, 09:12
Dann würde ich bitte nur noch gerne wissen, wie ich das in Delphi umsetzen kann.
Die Indy Beispiele enthalten sicher auch einen HTTP Server.

Basierend auf diesem Beitrag http://www.delphipraxis.net/238074-post4.html habe ich ungetestet die wesentlichen Teile wiederverwendet:

Delphi-Quellcode:
unit MiniHTTPServer;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPServer, IdCustomHTTPServer,
  IdHTTPServer, StdCtrls, Contnrs;

type
  TForm1 = class(TForm)
    Server: TIdHTTPServer;
    Active: TCheckBox;
    Port: TEdit;

    procedure ServerCommandGet(AThread: TIdPeerThread;
      ARequestInfo: TIdHTTPRequestInfo;
      AResponseInfo: TIdHTTPResponseInfo);

    procedure ActiveClick(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}



procedure TForm1.ServerCommandGet(AThread: TIdPeerThread;
  ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
  // hier wird die Anfrage bearbeitet.
  // Die URL der Anfrage steht in ARequestInfo.URI,
  // und kann Parameter enthalten.
  // Beispiel "/index.html?data1=wert1&data2=wert2
  // Die Parameter können einzeln ausgelesen werden, Beispiel
  // var1 := ARequestInfo.Params.Values['data1'];

  // Nach der Verarbeitung kann man einen Text zurücksenden (optional)
  AResponseInfo.ContentText:= 'hello world!';

end;

procedure TForm1.ActiveClick(Sender: TObject);
begin
  Try
    If Active.Checked then begin
      Server.DefaultPort:=StrToIntDef(Port.Text,80);
    end;
    Server.Active:=Active.Checked;
  Finally
    Active.Checked:=Server.Active;
  end;
end;

end.
Das Formular enthält nur eine TIdHTTPServer Komponente und ein Editfeld für die Eingabe des Ports, sowie eine Checkbox zum Starten / Stoppen.
Michael Justin
habarisoft.com

Geändert von mjustin (20. Sep 2012 um 09:27 Uhr)
  Mit Zitat antworten Zitat