Nasıl kullanılır?
- Tek bir curl komutunu curl komutu kutusuna yapıştırın. Boşluk içeren değerlerin tırnaklarını koruyun.
- Her seçeneği kontrol etmek için Çevirinin yaptıkları listesini okuyun: yöntemi, sorgu dizesini, gövdeyi ve başlıkları.
- Python kodunu requests kütüphanesi kurulu bir betiğe, JavaScript fetch kodunu bir sayfaya kopyalayın.
- Bir not ya da hata çıkarsa önce komutu düzeltin, sonra kodu yeniden kopyalayın.
Araç hangi curl seçeneklerini okur
Araç çoğu istekte kullanılan seçenekleri okur. Her biri Python çağrısını bilinen bir biçimde değiştirir; başka bir seçenek çeviriyi bir iletiyle durdurur, böylece bir şey tahmin edilmez.
- -X ve --request yöntemi yazıldığı gibi belirler. Kılavuz, yalnızca gönderilen kelimeyi değiştirdiğini söyler.
- -H ve --header başlık ekler. X-Flag; biçimi boş değer gönderir, iki nokta sonrasında boş bırakılan -H ise dahili bir başlığı kaldırır.
- -d, --data, --data-raw ve --data-binary gövdeyi belirler. Birden çok -d değeri & ile birleşir. -G ile bunlar sorgu dizesi olur.
- -G ve --get, -I ve --head, -L ve --location yöntemi ya da yönlendirme davranışını değiştirir.
- -u ve --user, -A ve --user-agent, -b ve --cookie sırasıyla yetkilendirme demetini, User-Agent başlığını ve Cookie başlığını belirler.
- --json değeri gövde olarak gönderir ve JSON başlıklarını ayarlar; bunları -H geçersiz kılabilir.
Komut nasıl okunur
Metin, bir POSIX kabuğunun böldüğü gibi kelimelere ayrılır. Tek tırnak her karakteri korur. Çift tırnak içinde ters eğik çizgi yalnızca $, ters tırnak, çift tırnak, ters eğik çizgi ve satır sonu karakterlerinden önce kaçış işlevi görür. Satır sonundaki ters eğik çizgi satırı sonrakine bağlar. $HOME gibi kabuk genişletmeleri çalıştırılmaz; bu tür değerler hata olarak bildirilir.
Araç neleri kontrol etmez
- İsteği göndermez; sunucunun kabul edip etmediğini söyleyemez.
- Tarayıcı fetch için kaynaklar arası kuralları uygular. Aynı komut bir terminalde çalışsa bile başka bir siteye yapılan istek orada engellenebilir. Araç bunu denemez.
- @ ile belirtilen dosyaları açmaz ve çerez dosyalarını okumaz.
- Yalnızca Python üretir. Kodda kullanılan requests kütüphanesini ayrıca kurmanız gerekir.
Örnek: JSON gövdeli bir PUT
Komut, tek bir öğeye JSON gövdeli bir PUT gönderir. Yöntem -X'ten, başlık -H'den, gövde -d'den gelir. Python çağrısında aynı üç parça vardır ve çeviri listesi hangi seçeneğin hangi değeri verdiğini söyler.
| curl seçeneği | Python argümanı | Kodda değer |
|---|---|---|
| -X PUT | method | 'PUT' |
| -H 'Content-Type: application/json' | headers | 'Content-Type': 'application/json' |
| -d '{"name": "Ada"}' | data | '{"name": "Ada"}' |
Sık sorulan sorular
Kod neden requests kullanıyor, başka bir kütüphane değil?
requests, aracın çevirdiği Python kütüphanesidir. Request fonksiyonu yöntemi, adresi, başlıkları, veriyi ve yetkilendirmeyi tek çağrıda alır; komutun adlandırdığı her yöntem için aynı çağrı işe yarar.
-X yazmadığım halde isteğim neden POST gidiyor?
Kılavuza göre -d POST kullanır, --json de bir POST gönderir. Göndermek istediğiniz yöntemi -X ile yazın, örneğin -X PUT.
Çeviride -G ne yapar?
Kılavuzda anlatıldığı gibi -d verisini URL'ye sorgu dizesi olarak taşır ve isteği GET yapar. Python çağrısında tam URL bulunur, gövde yoktur.
Komutumdaki parolalar bir yere gönderiliyor mu?
Hayır. Komut tarayıcınızda okunur, hiçbir şey saklanmaz ve bize gönderilmez. Yine de denetlemediğiniz bir sayfaya gerçek parola ya da belirteç yazmayın; deneme değeri kullanın.
Çıktıda yönlendirmelerle ilgili not neden var?
curl yönlendirmeleri yalnızca -L ile izler. requests her yöntemde yönlendirmeleri varsayılan olarak izler; fetch de öyle. Bu nedenle not, -L olmayan bir curl çağrısıyla nasıl eşleşeceğinizi söyler.
Araç @ ile adlandırılmış bir dosyadan veri okuyabilir mi?
Hayır. Araç dosya açmaz, bu yüzden @ değeri hata olarak bildirilir. Verinin kendisini komuta yapıştırın.
Kaynaklar
- curl kılavuzu: -X, -H, -d, -G, -I, -u, -A, -b, -L, --json ve --basic
- POSIX Kabuk Komut Dili, bölüm 2.2 Tırnaklama
- Requests: request, get, post ve head için API başvurusu
Rakamlar ve metin en son 10 Kasım 2026 Salı tarihinde kontrol edildi.