unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Buttons, IdHTTP, IdSSLOpenSSL;
type
TForm1 = class(TForm)
BitBtn1: TBitBtn;
Memo1: TMemo;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
type
TMyThread = class(TThread)
private
HTTP: TIdHTTP;
SSL: TIdSSLIOHandlerSocketOpenSSL;
protected
procedure Execute; override;
public
constructor Create(CreateSuspended: Boolean);
destructor Destroy; override;
end;
implementation
{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);
var
MyThread: TMyThread;
begin
MyThread := TMyThread.Create(False);
end;
{ TMyThread }
constructor TMyThread.Create(CreateSuspended: Boolean);
begin
inherited Create(CreateSuspended);
FreeOnTerminate := True;
HTTP := TIdHTTP.Create(nil);
SSL := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
HTTP.IOHandler := SSL;
HTTP.HandleRedirects := True;
end;
destructor TMyThread.Destroy;
begin
SSL.Free;
HTTP.Free;
inherited;
end;
procedure TMyThread.Execute;
var
Res: string;
begin
Res := HTTP.Get('https://esta.cbp.dhs.gov/esta/');
Synchronize(
procedure
begin
Form1.Memo1.Lines.Add(Res)
end
);
end;
end.