Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
[FMX] Android - Indy ile HTTPS linklerine erişirken OpenSSL kütüphanesi kullanımı
#1
Lightbulb 
Merhaba.

- Windows'ta projenizin olduğu veya System Path içerisinde bir yere OpenSSL kütüphaneleri olan iki adet DLL dosyasını kopyalamak ile IdHttp ve TIdSSLIOHandlerSocketOpenSSL ikilisini sorunsuz kullanabiliyorduk. Bunu bir çoğumuz deneyimlemişizdir.

- Geçtiğimiz gün kurumda SSL erişimi için ANDROID projemde kullandığım HTTPS linklerine mobil platformdan erişirken lazım olduğunda kullandığım kütüphaneleri projemizde nasıl yapılandıracağımızı bir SSL erişim örneği ile özetleyeyim.

- Yine Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız. linkinden başvurarak indireceğim Android destekli OpenSSL paketini indiriyoruz.

a664sufkjy6mitsksyw3.png

Bu dosyayı bir klasöre açıyoruz içinde iki alt klasör göreceksiniz. 

tqdndhh2edmyugsisj2m.png


Bu alt klasörlerde ARM olanını açınca da 

gr6bj9wlqg1wfn79xskj.png

çıkan iki dosyayı projemiz ile deploy yani proje kurulumu yapılan mobil cihazın, projenize özel bir klasörüne koymasını sağlayacağız.

Bunun için PROJECT menüsünden alt kısımlar yakın olan DEPLOYMENT başlığını seçmeliyiz. 

r5zwcwv9z5ymlyvfyk9p.png

Burası çok önemli. Kırmızı ile daire içerisine aldığım Remote Path mutlaka .\assests\internal şeklinde bize ait ulaşabileceğimiz bir klasör olsun ki aşağıda vereceğim örnekteki gibi TPath ile hazır erişim klasörlerinden erişebilelim.

hpg3fowcw9jt5ou9ex1j.png


Proje örneği... Idea

Örnek Android projenizdeki forma bir TImageViewer yerleştirin ve aşağıdaki kodu yazın.
Buradaki kilit satır, SSL kütüphanenizin yerini bildiren şu satırdır.

   IdOpenSSLSetLibPath(TPath.GetDocumentsPath);


Uses Idhttp, IdSSLOpenSSL, IdSSLOpenSSLHeaders, System.IOUtils;

// Project / Deployment altında ".\assets\internal\" klasörü altına SSL .so dosyaları eklenir.
// IdOpenSSLSetLibPath(TPath.GetDocumentsPath) şeklinde bu klasör SSL path erişimine alınır
procedure TForm1.Button1Click(Sender: TObject);
Const
 CaptchaURL  = 'https://optik.sgk.gov.tr/Optik_Firma_Web/CaptchaServlet';
var
 IdHttp                : TIdHttp;
 IdSSLIOHandlerSocket  : TIdSSLIOHandlerSocketOpenSSL;
 MS                    : TMemoryStream;
 CaptchaImage          : TBitmap;
begin
 IdHttp               := TIdHttp.Create(nil);
 CaptchaImage         := TBitmap.Create; // Android'de PNG kabul ediyor...
 IdSSLIOHandlerSocket := TIdSSLIOHandlerSocketOpenSSL.create(nil);
 MS                   := TMemoryStream.Create;
 try
   IdOpenSSLSetLibPath(TPath.GetDocumentsPath);
   IdSSLIOHandlerSocket.PassThrough        := True;
   IdSSLIOHandlerSocket.SSLOptions.Method  := TIdSSLVersion.sslvTLSv1_2;

   IdHttp.IOHandler            := IdSSLIOHandlerSocket;
   IdHttp.Request.UserAgent    := 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'; // 'Dalvik/2.1.0 (Linux; U; Android 8.0.0; SM-N950F Build/R16NW)';

   IdHttp.Get( CaptchaURL, MS );
   MS.Position := 0;
   CaptchaImage.LoadFromStream( MS );

// Web'den Captcha Image geldi..
   ImageViewer1.Bitmap := TBitmap.Create( Trunc(ImageViewer1.Width), Trunc(ImageViewer1.Height) );
   ImageViewer1.Bitmap.Assign( CaptchaImage ); // Görelim...
 finally
    CaptchaImage.Free;
    IdHttp.Free;
    IdSSLIOHandlerSocket.Free;
    MS.Free;
 end;
end;
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif


Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi'de Indy SMTP ile e-mail gönderme. (GMail, Yandex, Yahoo vb.) csunguray 15 3.046 26-06-2019, Saat: 13:59
Son Yorum: csunguray
Lightbulb [GÜNCEL] Firebase GCM Android Bilgi Mesajı (Notification Push Message) mrmarman 20 9.290 11-12-2018, Saat: 14:50
Son Yorum: Bay_Y
Photo Generics (soysallar) ve TCustomAttribute kullanımı ve RTTI mustafaozpinar 13 1.455 07-11-2018, Saat: 11:53
Son Yorum: Fesih ARSLAN
  SQL Server : Tablo Değişkeni Kullanımı (Running Total, Yürüyen Bakiye Örneği) uparlayan 5 1.415 22-03-2018, Saat: 12:28
Son Yorum: hi_selamlar
  Delphi Direktif Kullanımı narkotik 3 910 12-03-2018, Saat: 00:44
Son Yorum: mcuyan



Konuyu Okuyanlar: 1 Ziyaretçi