1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
| var
lStream: TMemoryStream;
begin
IdHttp1 := TIdHTTP.Create(nil);
try
IdSSLIOHandlerSocketOpenSSL1:= TIdSSLIOHandlerSocketOpenSSL.Create(IdHttp1);
try
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.SSLVersions := [sslvTLSv1,sslvTLSv1_1,sslvTLSv1_2];
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvTLSv1_2;
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Mode := sslmClient;
// IdSSLIOHandlerSocketOpenSSL1.SSLOptions.VerifyMode := [sslvrfClientOnce, sslvrfPeer];
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.VerifyDepth := 0;
// IdSSLIOHandlerSocketOpenSSL1.OnVerifyPeer := OnVerifyPeer;
IdLogEvent1 := TIdLogEvent.Create(Self);
try
IdLogEvent1.ReplaceCRLF := False;
IdLogEvent1.LogTime := False;
IdLogEvent1.OnReceived := OnReceivedData;
IdLogEvent1.OnSent := OnSentData;
IdLogEvent1.OnStatus := OnStatusEvent;
IdHTTP1.Request.BasicAuthentication := False;
IdHTTP1.Request.Accept :='*/*';
IdHTTP1.Request.AcceptEncoding:='gzip, deflate';
IdHTTP1.Request.Connection:='Close';
IdHTTP1.Request.UserAgent := 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0';
IdHTTP1.Request.CharSet := 'utf-8, *;q=0.8r';
IdHTTP1.Request.AcceptLanguage := 'en-us,en;q=0.5';
IdHTTP1.Request.CustomHeaders.AddValue('Clear-Site-Data','*');
IdHttp1.AllowCookies := True;
IdHTTP1.HandleRedirects := True;
IdHTTP1.RedirectMaximum := 35;
IdHTTP1.ConnectTimeout := 12000;
IdHTTP1.ReadTimeout := 12000;
IdHTTP1.MaxAuthRetries := 10;
IdHTTP1.HTTPOptions := [hoForceEncodeParams];
IdHTTP1.IOHandler := IdSSLIOHandlerSocketOpenSSL1;
IdHTTP1.IOHandler.Intercept := IdLogEvent1;
IdHTTP1.OnRedirect := OnRedirect;
IdHTTP1.OnProxyAuthorization:= OnProxyAuthorization;
IdHTTP1.OnChunkReceived := OnChunkReceived;
IdHTTP1.OnConnected := OnConnected;
lStream := TMemoryStream.Create;
try
try
IdLogEvent1.Active := True;
IdHTTP1.Get(URL, lStream);
if IdHTTP1.ResponseCode in [200, 201] then
begin
lStream.Position := 0;
Image1.Picture.LoadFromStream(lStream);
Image1.Stretch := True;
Image1.Repaint;
end
else
begin
Memo1.Lines.Add('Echec : '+ IdHttp1.ResponseText);
end;
except
on e:exception do
begin
Memo1.Lines.Add('Exception : '+ e.Message);
end;
end;
finally
FreeAndNil(lStream);
end;
finally
IdLogEvent1.Active := False;
FreeAndNil(IdLogEvent1);
end;
finally
FreeAndNil(IdSSLIOHandlerSocketOpenSSL1);
end;
finally
FreeAndNil(IdHTTP1);
end; |
Partager