unit mainformunit;
{$mode objfpc}{$H+}
interface
uses
{$ifdef DARWIN}
cthreads,
{$endif}
IdSSLOpenSSL, Classes, SysUtils, Forms,
Controls, Graphics, Dialogs, StdCtrls, IdHTTP, ZConnection;
type
TMyThread = class(TThread)
private
procedure completedAction;
protected
procedure Execute; override;
public
threadHTTP: TIdHTTP;
constructor Create(CreateSuspended: boolean);
end;
type
{ TForm1 }
TForm1 = class(TForm)
Button2: TButton;
IdHTTP1: TIdHTTP;
ZConnection1: TZConnection;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
var
myThread: TMyThread;
begin
myThread := TMyThread.Create(True);
myThread.threadHTTP:=TIdHTTP.Create(nil);
myThread.Start;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
myThread: TMyThread;
begin
myThread := TMyThread.Create(True);
myThread.threadHTTP:=TIdHTTP.Create(nil);
myThread.Start;
end;
constructor TMyThread.Create(CreateSuspended: boolean);
begin
inherited Create(CreateSuspended);
FreeOnTerminate := True;
end;
procedure TMyThread.completedAction;
// this method is executed by the mainthread and can therefore access all GUI elements.
begin
end;
procedure TMyThread.Execute;
var
n, i: integer;
responseContentString: string;
lHTTP: TIdHTTP;
tIdSSLIOHandlerSocket: TIdSSLIOHandlerSocketOpenSSL;
begin
tIdSSLIOHandlerSocket := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
tIdSSLIOHandlerSocket.PassThrough := True;
with tIdSSLIOHandlerSocket do
begin
SSLOptions.Method := sslvTLSv1_2;
SSLOptions.SSLVersions := [sslvTLSv1_2];
SSLOptions.VerifyMode := [];
SSLOptions.VerifyDepth := 2;
end;
responseContentString := threadHTTP.Get('https://echo.hoppscotch.io') ;//error happened here
Synchronize(@completedAction); //Synchronize(@Showstatus);
end;
end.