unit mod_testhttp; {$mode delphi} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, browsermodules, browserconfig; type { TformTestHttp } TformTestHttp = class(TForm) buttonHttpTest: TButton; checkProxy: TCheckBox; comboRequest: TComboBox; comboUserAgent: TComboBox; comboURL: TComboBox; editProxy: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; memoTestHttpDebug: TMemo; procedure buttonHttpTestClick(Sender: TObject); private { private declarations } public { public declarations } end; { TTestHttpBrowserModule } TTestHttpBrowserModule = class(TBrowserModule) public constructor Create; override; function GetModuleUIElements(): TBrowserModuleUIElements; override; // For expansions function GetCommandCount: Integer; override; function GetCommandName(AID: Integer): string; override; procedure ExecuteCommand(AID: Integer); override; end; var formTestHttp: TformTestHttp; implementation uses httpsend; { TformTestHttp } procedure TformTestHttp.buttonHttpTestClick(Sender: TObject); var Client: THttpSend; ContentsList: TStringList; AURL: string; begin AURL := comboURL.Text; Client := THttpSend.Create; ContentsList := TStringList.Create; try // Preparation of headers and proxy Client.Headers.Add('Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'); Client.Headers.Add('Accept-Language: en-gb,en;q=0.5'); //Client.Headers.Add('Accept-Encoding: gzip,deflate'); Client.Headers.Add('Accept-Charset: utf-8;q=0.7,*;q=0.7'); // ISO-8859-1, Client.UserAgent := comboUserAgent.Text; if checkProxy.Checked then begin Client.ProxyHost := editProxy.Text; Client.ProxyPort := '80'; end; // Make the syncronous request via Synapse Client.HttpMethod(comboRequest.Text, AURL); Client.Document.Position := 0; ContentsList.Clear(); ContentsList.LoadFromStream(Client.Document); memoTestHttpDebug.Clear(); memoTestHttpDebug.Lines.Add(Format('Requesting HTTP %s to: %s', [comboRequest.Text, AURL])); memoTestHttpDebug.Lines.Add(''); memoTestHttpDebug.Lines.Add('HTTP Headers:'); memoTestHttpDebug.Lines.Add(''); memoTestHttpDebug.Lines.AddStrings(Client.Headers); memoTestHttpDebug.Lines.Add(''); finally ContentsList.Free; Client.Free; end; end; { TTestHttpBrowserModule } constructor TTestHttpBrowserModule.Create; begin inherited Create; ShortDescription := 'HTTP Test'; end; function TTestHttpBrowserModule.GetModuleUIElements: TBrowserModuleUIElements; begin Result := [bmueCommandsSubmenu]; end; function TTestHttpBrowserModule.GetCommandCount: Integer; begin Result := 1; end; function TTestHttpBrowserModule.GetCommandName(AID: Integer): string; begin Result := 'HTTP Test Dialog'; end; procedure TTestHttpBrowserModule.ExecuteCommand(AID: Integer); begin formTestHttp.ShowModal(); end; initialization {$I mod_testhttp.lrs} RegisterBrowserModule(TTestHttpBrowserModule.Create()); end.