12-11-2025, Saat: 18:37
Dilersen aşağıdaki örnek kodu test için kullanmak isteyebilirsin.
Boş bir VLC proje açıp, forma bir tane button bir tane de TImage resim nesnesi ekle.
kullanımı
Boş bir VLC proje açıp, forma bir tane button bir tane de TImage resim nesnesi ekle.
Uses IdHttp, IdSSLOpenSSL, IdSSLOpenSSLHeaders, Vcl.Imaging.pngimage; function IdHttpSSLDownload(aBitmap: TBitmap): boolean; Const LCaptchaURL = 'https://gss.sgk.gov.tr/Optik_Firma2_Web/CaptchaServlet'; var LIdHttp : TIdHttp; LIdSSLIOHandlerSocket : TIdSSLIOHandlerSocketOpenSSL; LMS : TMemoryStream; LCaptchaImage : TPNGImage; LSSLPath : string; LSSLLibFile : string; begin result := false; // Bu örnekte SLL DLL Path EXE klasörüdür LSSLPath := ExtractFilePath(ParamStr(0)); LSSLLibFile := LSSLPath + PathDelim + 'ssleay32.dll'; if NOT FileExists( LSSLLibFile ) then begin Showmessage( 'ssleay32.dll dosyası eksik...' + sLineBreak + LSSLLibFile); exit; end; //Dilediğiniz başka bir klasörü SSL DLL path olarak bu şekilde belirtebilirsiniz. IdOpenSSLSetLibPath( LSSLPath ); LCaptchaImage := TPngImage.Create; LIdHttp := TIdHttp.Create(nil); LIdSSLIOHandlerSocket := TIdSSLIOHandlerSocketOpenSSL.create(nil); LMS := TMemoryStream.Create; try with LIdSSLIOHandlerSocket as TIdSSLIOHandlerSocketOpenSSL do begin PassThrough := True; SSLOptions.Method := sslvSSLv23; SSLOptions.SSLVersions := [sslvTLSv1_2, sslvTLSv1_1, sslvTLSv1]; end; LIdHttp.IOHandler := LIdSSLIOHandlerSocket; LIdHttp.HandleRedirects := true; LIdHttp.Request.UserAgent := 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36'; try LIdHttp.Get( LCaptchaURL, nil ); // cookies oluşsun diye boş çağrı.. LIdHttp.Get( LCaptchaURL, LMS ); // asıl download çağrısı except on e:Exception do begin Showmessage( 'HATA : '+ e.Message ); exit; end; end; LMS.Position := 0; LCaptchaImage.LoadFromStream( LMS ); // Web'den Captcha Image geldi.. aBitmap.Assign(LCaptchaImage); result := true; finally LCaptchaImage.Free; LIdHttp.Free; LIdSSLIOHandlerSocket.Free; LMS.Free; end; end;
kullanımı
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if IdHttpSSLDownload( Image1.Picture.Bitmap )
then
showmessage('OK')
else
showmessage('FAIL');
end;
Saygılarımla
Muharrem ARMAN

Muharrem ARMAN


