C++ ile curl e giriş.

Curl u uzun zamandır denemek istiyorum. Ancak bugün bir şeyler elde edebildim.

Konuya yabancı olanlar için curl http requestler gönderebildiğimiz bir komut satırı programı. libCurl ise curl un platformdan bağımsız kütüphanesi. Çok daha güzel anlatımı ise şöyle :)

libcurl is a free and easy-to-use client-side URL transfer library, supporting FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS and FILE. libcurl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, Kerberos4), file transfer resume, http proxy tunneling and more!

Aklıma gelen bazı uygulama alanları..
Console uygulamamızdan bir sayfadan veri çekebiliriz, kendi rss reader ımızı yazabiliriz. Mailimize login olup yeni ileti var mı kontrol edebiliriz.Programımızı weble ilişkilendirebiliz. Yazılım güvenliği konusunda kullanılabilir. Tabi yaramaz işlerde kullanmaya da oldukça uygun...

Burada anlatıldığına göre MIT/X türevi bir lisansa sahip. açık kaynak kodlu bir proje ticari uygulamalarda da gayet güzel kullanılabiliyor.

Yukarıda saydığım uygulamalar belki .net veya başka RAD(delphi, cbuilder, vb) ürünlerini kullanarak çok daha kolay şekilde gerçekleştirilebilir ama bildiğim kadarıyla kütüphane c/c++ ve php dünyasında pek yaygın.


  • UYGULAMA
Kütüphanenin resmi kaynağı burası. Pek çok işletim sistemi için değişik opsiyonlarla derlenmiş kütüphane dosyaları bulunabilir. Ben ms vc++ 6 ile denediğim derleme denemelerimde başarılı olamadım. Hem de hazır proje dosyası şeklinde olmasına rağmen!! Uygulamanın pek çok bağımlılığı var ve çoğu ağ teknolojileri ile alakalı benim yabancı olduğum konulular.

Sizde aynı durumdaysanız libcurl-7.15.1-msvc-win32-ssl-0.9.8a-zlib-1.2.3.zip
paketini önerebilirim. Paket içerisinde 32 bit win sistemler için derlenmiş ssl desteği sağlayan lib ve dll ler var.

Bunu uygun yere(benim sistemimde c:\curl) kaydettikten sonra derleyicimizde gerekli linker ve header directory ayarlarını yapmamız gerekiyor.

Bunlar Ms VC++ 6 için şöyle:

  • -Project>Settings>Link>Object/Library Modules e "libcurl.lib" ifadesini ekleyin.
  • -Tools>Options>Directories>Show Directory for Include Files seçili iken C:\curl\include satırını ekleyin.
  • -Tools>Options>Directories>Show Directory for Library Files seçili iken C:\curl\ satırını ekleyin.

Diğer derleyicilerde de menüler benzer şekilde olacaktır.

Ayrıca c:/curl de libcurl_imp.lib dosyasını libcurl.lib yapıp curl klasorunde lib içine kaydetmeyi unutmayın.


Dll ler ise libcurl.dll ssleay32.dll zlib1.dll libeay32.dll bunlarıda uygulamamızın exesinin bulunduğu klasore kopyalayın.


simple.c Burada örnek bir uygulama var. İlk önce bu kodu denemenizi tavsiye ederim. Yaptığınız ayarlarla bu programı derlediğinizde haxx.se adresini bir http request gönderilecek ve gelen yanıt console ekranınıza yansıyacaktır.


http://curl.haxx.se/lxr/source/docs/examples/
Adresinde daha gelişmiş uygulamalar bulunmakta.


Kütüphane oldukça kullanışlı ve kolay. Hiç deneyimim olmamasına rağmen bir saat kadar bir süre içinde okulumuz öğrenci sistemine programla login olabildim. Belki bir sonraki yazıya konu olabilir. :)

6 yorum - yorum yaz:

Adsız dedi ki...

yazınız çok güzel olmuş bide sizin bana verdiğiniz program kitabını çok sevdim hergün okuyorum

Esat ARSLAN dedi ki...

Gayet öğretici bir anlatım olmuş. Emeğinize sağlık.

Volkan SALMA dedi ki...

@Esat ARSLAN: Faydalı olabildiysek ne mutlu bize. Bu vesile ile blogunuzuda öğrenmiş oldum.

Adsız dedi ki...

çok teşekkür ederim. ellerinize sağlık .yazınız çok yardımcı oldu .

Sinan

Adsız dedi ki...

Size hiç bi rşekilde ulaşamıyorum. Mail yada telefon vb. bir araç yok. Nasıl ulaşabiliriz ticari bir proje için.

Volkan SALMA dedi ki...

Sitenin hakkımda bölümünde mail adresim var. Oradan ulaşabilirsiniz.

Yorum Gönder