Advertisement
uian2000

HttpGet-TestUrlEncode-pas

Feb 23rd, 2021 (edited)
489
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 2.54 KB | None | 0 0
  1. unit uMain;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs, OleCtrls, SHDocVw, ActnList, StdCtrls, ExtCtrls, MSHTML,
  8.   mormot.net.http,
  9.   mormot.net.server,
  10.   mormot.net.client,
  11.   mormot.core.buffers,
  12.   mormot.core.base,
  13.   mormot.core.text;
  14.  
  15. type
  16.   TfrmMain = class(TForm)
  17.     wbClient: TWebBrowser;
  18.     btnServerSwitch: TButton;
  19.     btnBrowserGet: TButton;
  20.     btnHttpGet: TButton;
  21.     ActionList: TActionList;
  22.     actServerSwitch: TAction;
  23.     actBrowserGet: TAction;
  24.     actHttpGet: TAction;
  25.     lbledtUriAddress: TLabeledEdit;
  26.     procedure actBrowserGetExecute(Sender: TObject);
  27.     procedure actHttpGetExecute(Sender: TObject);
  28.     procedure actServerSwitchExecute(Sender: TObject);
  29.     procedure FormCreate(Sender: TObject);
  30.   private
  31.     { Private declarations }
  32.     fServer: THttpServer;
  33.     function ServerResponse(Ctxt: THttpServerRequestAbstract): cardinal;
  34.   public
  35.     { Public declarations }
  36.   end;
  37.  
  38. var
  39.   frmMain: TfrmMain;
  40.  
  41. implementation
  42.  
  43. {$R *.dfm}
  44.  
  45. function MakeUrl(aAddress: String; aDoEncode: Boolean = False): string;
  46. begin
  47.   if not aDoEncode then
  48.     Result := 'http://127.0.0.1:8080/'+aAddress else
  49.     Result := 'http://127.0.0.1:8080/'+UrlEncode(aAddress);
  50. end;
  51.  
  52. function MakeResponse(aUrl: string): string;
  53. begin
  54.   result := '<html><body><p>Url:'+aUrl+'</p></body></html>';
  55. end;
  56.  
  57. procedure TfrmMain.actBrowserGetExecute(Sender: TObject);
  58. begin
  59.   wbClient.Navigate(MakeUrl(lbledtUriAddress.Text));
  60. end;
  61.  
  62. procedure TfrmMain.actHttpGetExecute(Sender: TObject);
  63. var sResp: string;
  64. begin
  65.   sResp := HttpGet(MakeUrl(lbledtUriAddress.Text));
  66.  
  67.   if '' <> sResp then
  68.     IHTMLDocument2(wbClient.Document).body.innerHTML := sResp;
  69. end;
  70.  
  71. procedure TfrmMain.actServerSwitchExecute(Sender: TObject);
  72. begin
  73.   if actServerSwitch.Tag = 0 then
  74.   begin
  75.     fServer := THttpServer.Create('8080',nil,nil,'');
  76.     fServer.OnRequest := ServerResponse;
  77.  
  78.     actServerSwitch.Caption := 'Server Started.';
  79.     actServerSwitch.Tag := 1;
  80.   end else
  81.   begin
  82.     fServer.OnRequest := nil;
  83.     fServer.Free;
  84.  
  85.     actServerSwitch.Caption := 'Server Stoped.';
  86.     actServerSwitch.Tag := 0;
  87.   end;
  88. end;
  89.  
  90. procedure TfrmMain.FormCreate(Sender: TObject);
  91. begin
  92.   actServerSwitch.Tag := 0;
  93. end;
  94.  
  95. { TfrmMain }
  96.  
  97. function TfrmMain.ServerResponse(Ctxt: THttpServerRequestAbstract): cardinal;
  98. begin
  99.   with Ctxt do
  100.   begin
  101.     OutContentType := HTML_CONTENT_TYPE;
  102.     OutContent := MakeResponse(Url);
  103.     Result := HTTP_SUCCESS;
  104.   end;
  105. end;
  106.  
  107. end.
  108.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement