wmecho.pas 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. unit wmecho;
  2. {$mode objfpc}{$H+}
  3. interface
  4. uses
  5. SysUtils, Classes, httpdefs, fpHTTP, fpWeb, webutil;
  6. type
  7. { TEchoModule }
  8. TEchoModule = class(TFPWebModule)
  9. procedure EchoModuleRequest(Sender: TObject; ARequest: TRequest;
  10. AResponse: TResponse; var Handled: Boolean);
  11. private
  12. { private declarations }
  13. public
  14. { public declarations }
  15. end;
  16. var
  17. EchoModule: TEchoModule;
  18. implementation
  19. {$R *.lfm}
  20. { TEchoModule }
  21. procedure TEchoModule.EchoModuleRequest(Sender: TObject; ARequest: TRequest;
  22. AResponse: TResponse; var Handled: Boolean);
  23. Var
  24. S : TStrings;
  25. begin
  26. S:=TStringList.Create;
  27. try
  28. S.Add('<HTML><HEAD><TITLE>Echo demo</TITLE></HEAD><BODY>');
  29. // Analyze request.
  30. DumpRequest(ARequest,S,True);
  31. S.Add('<H1>Extra headers (may or may not be passed):</H1>');
  32. S.Add('Do not track header (DNT): '+ARequest.GetCustomHeader('DNT'));
  33. S.Add('</BODY></HTML>');
  34. AResponse.Contents:=S;
  35. Handled:=True;
  36. finally
  37. S.Free;
  38. end;
  39. end;
  40. initialization
  41. RegisterHTTPModule('TEchoModule', TEchoModule);
  42. end.