cURL Nedir ve Nasıl Kullanılır? Temel Komutlar ve Örnekler

E-posta Hosting Kampanya

cURL Nedir?

cURL (Client URL), internet üzerinden veri transferi yapmak için kullanılan güçlü ve esnek bir komut satırı aracıdır. HTTP, HTTPS, FTP, FTPS, SCP, SFTP, LDAP ve daha birçok protokolü destekler. Özellikle API istekleri yapmak, veri çekmek ve otomatikleştirilmiş işlemleri yürütmek için yaygın olarak kullanılır. cURL, Linux ve macOS işletim sistemlerinde genellikle öntanımlı olarak bulunurken, Windows kullanıcıları da kolayca yükleyebilir.

cURL Nasıl Kurulur?

Linux ve macOS İçin cURL Kurulumu

Çoğu Linux ve macOS sisteminde cURL öntanımlı olarak yüklüdür. Yüklü olup olmadığını kontrol etmek için aşağıdaki komutu çalıştırabilirsiniz:

curl --version

Eğer yüklü değilse, şu komut ile yükleyebilirsiniz:

Ubuntu/Debian:

sudo apt install curl

CentOS/RHEL:

sudo yum install curl

macOS:

brew install curl

Windows İçin cURL Kurulumu

Windows 10 ve üzeri sürümlerde cURL öntanımlı olarak gelir. Eğer sisteminizde yoksa, cURL resmi web sitesinden indirerek manuel olarak yükleyebilirsiniz.

cURL Komutları ve Kullanım Örnekleri

1. Basit Bir HTTP İsteği Gönderme

Aşağıdaki komut, bir web sayfasının içeriğini getirir:

curl https://example.com

Bu komut, verilen URL’ye bir GET isteği göndererek sayfanın HTML içeriğini döndürür.

2. HTTP Başlıklarını Görüntüleme

Bir web sitesinin yanıt başlıklarını görmek için:

curl -I https://example.com

Bu komut, yalnızca HTTP yanıt başlıklarını gösterir.

3. Belirli Bir HTTP Metodu Kullanma

GET yerine POST, PUT veya DELETE gibi farklı HTTP metodları kullanabilirsiniz:

curl -X POST https://example.com/api -d "param1=value1&param2=value2"

Bu komut, belirtilen URL’ye bir POST isteği gönderir.

4. JSON Formatında Veri Gönderme

API’lerle çalışırken genellikle JSON formatında veri gönderilir:

curl -X POST https://example.com/api \
     -H "Content-Type: application/json" \
     -d '{"name": "Ali", "age": 25}'

Bu komut, bir JSON nesnesini API’ye gönderir.

5. Bir Dosya İndirme

cURL ile dosya indirmek için aşağıdaki komutu kullanabilirsiniz:

curl -O https://example.com/file.zip

Bu komut, belirtilen dosyayı mevcut dizine indirir.

Alternatif olarak, dosya adını belirleyerek kaydetmek için:

curl -o myfile.zip https://example.com/file.zip

6. Kimlik Doğrulama ile İstek Gönderme

Eğer bir API veya web servisi kimlik doğrulama gerektiriyorsa:

curl -u username:password https://example.com/secure-data

Bu komut, temel kimlik doğrulama (Basic Authentication) kullanarak istek yapar.

7. cURL ile Proxy Kullanımı

Bir proxy sunucusu üzerinden istek göndermek için:

curl -x http://proxyserver:port https://example.com

Bu komut, belirlenen proxy sunucusunu kullanarak istek yapar.

8. HTTPS Sertifika Doğrulamasını Atlamak

Bazı durumlarda, SSL/TLS sertifikalarının doğrulanmasını devre dışı bırakmak gerekebilir:

curl -k https://self-signed.badssl.com/

Bu komut, SSL doğrulamasını devre dışı bırakarak HTTPS isteği yapar.

cURL ile API İstekleri

cURL, REST API’lerle veri alışverişi yapmak için mükemmel bir araçtır. Örneğin, bir API’den veri almak için:

curl -H "Authorization: Bearer YOUR_TOKEN" https://api.example.com/data

Burada, API’ye erişim için bir kimlik doğrulama belirteci (Bearer Token) kullanılır.

Bir API’ye veri göndermek için:

curl -X POST -H "Authorization: Bearer YOUR_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"title": "Yeni Gönderi", "content": "Merhaba Dünya"}' \
     https://api.example.com/posts

Bu komut, JSON formatında bir veri yükleyerek yeni bir içerik oluşturur.

cURL ile Dosya Gönderme

Bir dosyayı bir API’ye yüklemek için aşağıdaki komut kullanılabilir:

curl -X POST -F "[email protected]" https://example.com/upload

Bu komut, “dosya.pdf” adlı dosyayı belirtilen sunucuya yükler.

cURL Kullanırken Karşılaşılan Yaygın Hatalar ve Çözümleri

  1. “command not found” Hatası:
    • cURL sisteminizde yüklü değilse, yukarıdaki kurulum adımlarını takip ederek yükleyin.
  2. “SSL certificate problem” Hatası:
    • Sertifika doğrulamasını devre dışı bırakmak için -k bayrağını kullanabilirsiniz.
  3. “Timeout” Hatası:
    • Bağlantı zaman aşımını artırmak için --max-time parametresini kullanabilirsiniz:
    curl --max-time 30 https://example.com

Sonuç

cURL, internet üzerinden veri alma, API çağrıları yapma, dosya indirme ve yükleme gibi birçok işlemi gerçekleştirmek için güçlü bir araçtır. Linux, macOS ve Windows ortamlarında kullanılabilmesi ve çok sayıda protokolü desteklemesi sayesinde geliştiriciler için vazgeçilmezdir. Bu rehberde temel cURL komutlarını ve örnek kullanımları ele aldık. Daha gelişmiş işlemler için cURL’in resmi dökümantasyonunu inceleyebilirsiniz.