Skip to content

cURL Komut Oluşturucu ve Yapılandırıcı

Tarayıcınızda curl komutları oluşturun — yöntem, başlık, kimlik doğrulama ve gövde ayarlayın, anında kopyalamaya hazır komut alın. Bearer, POST JSON, dosya yükleme için ön ayarlar. Ücretsiz, gizli, kayıt gerektirmez.

Takip Yok Tarayıcıda Çalışır Ücretsiz
Komutunuz tamamen tarayıcınızda oluşturulur. Token'lar, URL'ler ve yükler hiçbir zaman cihazınızı terk etmez.
Ön Ayarlar
Sorgu parametreleri
Başlıklar
Kimlik Doğrulama
İstek gövdesi
Seçenekler
Oluşturulan komut
Yöntemler, kimlik doğrulama ve gövde türlerinde doğru curl komutu oluşturma, gövde türüne göre doğru başlık ekleme ve shell güvenli alıntılama ile kaçış için incelendi — Go Tools Mühendislik Ekibi · Jun 3, 2026

Ekibimiz, curl komut oluşturucusunu HTTP yöntemleri (GET/POST/PUT/PATCH/DELETE), kimlik doğrulama şemaları (Bearer, Temel, API-anahtar başlıkları), gövde türleri (ham JSON, url kodlanmış form, çok parçalı dosya yükleme) ve seçenek bayrakları (-L, -k, -v, -i, --compressed, -o, zaman aşımları, proxy) genelinde — shell güvenli tek tırnak kaçışı ve doğru sorgu dizisi kodlamasıyla — gerçek curl davranışına karşı doğrular.

curl Komutu Nedir?

curl, HTTP ve düzinelerce diğer protokol üzerinden veri aktarmak için bir komut satırı aracıdır. Bir curl komutu; ikili dosya adı, bir dizi bayrak ve bir URL'den oluşur — örneğin curl -X POST https://api.example.com/users -H 'Content-Type: application/json' -d '{"name":"Ada"}'. curl neredeyse her Linux, macOS ve modern Windows makinesinde mevcut olduğundan, bir API'yi test etmenin, belgelerden bir isteği yeniden oluşturmanın veya bir CI betiğinin içinden bir servisi sağlık kontrolü yapmanın evrensel yoludur. Onu güçlü kılan kısalık, aynı zamanda hatırlamayı da zorlaştırır; bu nedenle görsel bir oluşturucu yardımcı olur.

Her curl komutunun aynı anatomisi vardır. Yöntem (-X GET, -X POST, …) HTTP fiilini ayarlar ve varsayılan olarak GET'tir. URL, sorgu parametrelerinin ? sonrasına eklendiği uç noktalardır. Başlıklar (-H 'Anahtar: Değer', tekrarlanabilir), Accept ve Content-Type gibi meta veri taşır. Kimlik doğrulama sadece özel bir başlıktır — token için -H 'Authorization: Bearer …', Temel kimlik doğrulama için -u kullanıcı:şifre veya özel -H 'X-API-Key: …'. Gövde (ham veya form verisi için -d, çok parçalı ve dosya yüklemeleri için -F) yükü taşır. Son olarak, -L (yönlendirmeleri takip et), -i (yanıt başlıklarını dahil et) ve -v (ayrıntılı) gibi seçenek bayrakları davranışı şekillendirir. Bu araç, bu parçaların her birini form alanı olarak düzenler ve komutu canlı olarak yeniden oluşturur.

Alıntılamada boğuştuğunuzda, JSON POST'ta Content-Type başlığını unuttuğunuzda veya çok parçalı bir yüklemeyi elle birleştirmeye çalıştığınızda bir curl komut oluşturucuya başvurun. Oluşturucu, shell güvenli tek tırnak kaçışını doğru şekilde yapar, sorgu dizinizi kodlar ve her gövde türü için doğru başlıkları ekler — ardından güvenebileceğiniz bir komut kopyalarsınız. 40'tan fazla çalıştırılabilir örnekle kapsamlı bir bayrak bazında başvuru için curl kopya kağıdını okuyun; zorlu sorgu dizisi değerlerini kodlamak için URL kodlayıcımızı kullanabilirsiniz.

Her şey tarayıcınızda gerçekleşir. Token'larınız, kimlik bilgileriniz, URL'leriniz ve istek gövdeleriniz istemci taraflı JavaScript ile oluşturulur ve hiçbir yere gönderilmez — gerçek üretim uç noktalarına gerçek API anahtarlarıyla komut oluşturabilir ve hiçbir şey cihazınızı terk etmez.

# Plain GET — curl defaults to GET
curl https://api.example.com/users

# GET with a Bearer token (auth is just a header)
curl https://api.example.com/me \
  -H 'Authorization: Bearer YOUR_TOKEN'

# POST a JSON body — note the Content-Type header
curl -X POST https://api.example.com/users \
  -H 'Content-Type: application/json' \
  -d '{"name":"Ada","role":"admin"}'

# Multipart file upload — '@' reads the file from disk
curl -X POST https://api.example.com/upload \
  -F 'file=@report.pdf' \
  -F 'title=Q3 report'

Temel Özellikler

Görsel İstek Oluşturucu

Bayrak sırasını ve alıntılamayı ezberlemek yerine isteğin tamamını form alanları olarak düzenleyin — yöntem, URL, sorgu parametreleri, başlıklar, kimlik doğrulama, gövde ve seçenekler. URL'nin -d'den önce mi sonra mı geldiğini artık tahmin etmek zorunda değilsiniz.

Kopyalama ve Dışa Aktarma ile Canlı Komut

curl komutu, sayfanın altında her tuş vuruşunda yeniden oluşturulur. Tek tıklamayla panoya kopyalayın veya doğrudan bir repoya ya da CI işine ekleyebileceğiniz çalıştırılabilir bir shell betiği indirmek için .sh Dışa Aktar'ı kullanın.

Tam Kimlik Doğrulama Desteği

Bearer token, Temel kimlik doğrulama (-u kullanıcı:şifre) ve özel API-anahtar başlıkları; her biri sunucuların beklediği tam biçimde yayılır. Şemayı seçin, kimlik bilgisini yapıştırın ve doğru Authorization veya özel başlık sizin için oluşturulur.

Her Gövde Türü

Ham JSON (eşleşen Content-Type başlığı otomatik olarak eklenir), application/x-www-form-urlencoded form alanları ve herhangi bir alanın @ önekiyle dosyaya geçirilebildiği multipart/form-data yüklemeleri.

Tek Tıklamayla Altı Ön Ayar

Bearer ile GET, POST JSON, Form yüklemesi, Temel kimlik doğrulama, İndir -o ve Ayrıntılı hata ayıklama, tek dokunuşla tüm formu doldurur. En yaygın API görevleri için çalışan bir istekten başlayın ve oradan ince ayar yapın.

Çok Satırlı ve Tek Satırlı Çıkış

Hızlı yapıştırma için kompakt tek satırlı komut ile bir betik okumayı veya pull request'te incelemeyi kolaylaştıran ters eğik çizgiyle devam eden çok satırlı sürüm arasında geçiş yapın. Aynı komut, iki biçim.

Yüzde Yüz Tarayıcı Tabanlı Gizlilik

Token'lar, URL'ler, başlıklar ve istek gövdeleri tamamen istemci tarafında oluşturulur ve hiçbir zaman cihazınızı terk etmez — Ağ sekmesinde doğrulayın. Üretim uç noktaları ve canlı kimlik bilgileri için sıfır veri açığıyla güvenlidir.

DevTools İş Akışı için Tasarlanmış

API'leri test etme ve tarayıcı DevTools'un "cURL olarak kopyala" özelliğinden istekleri yeniden oluşturmanın günlük döngüsü etrafında tasarlanmıştır. Yapıştırılan bir curl komutunu fetch, requests, Go, PHP, Ruby ve Node.js'e dönüştüren bir Dönüştür sekmesi bir sonraki sürümde geliyor.

curl Alternatifleri ve HTTP İstemcileri

HTTPie

CLI, insan dostu sözdizimi

Renkli çıkış ve daha kısa sözdizimi (http POST api.example.com/users name=Ada) ile modern bir CLI. Varsayılan olarak JSON Content-Type ayarlar. Etkileşimli kullanım için daha dostanedir; curl, yaygınlık ve betik taşınabilirliğinde galip gelir.

wget

CLI, indirme odaklı

Özyinelemeli indirmeler ve site yansıtma için en iyisidir; yönlendirmeleri takip eder ve varsayılan olarak yeniden dener. Keyfi yöntemler, özel başlıklar ve API testi için curl'den zayıftır. Linux'ta genellikle curl ile birlikte önceden kurulu gelir.

Postman

GUI uygulaması

Koleksiyonlar, ortamlar ve ekip senkronizasyonuyla istek oluşturma, kaydetme ve paylaşma için eksiksiz bir GUI. Keşifsel API çalışması için mükemmeldir; curl içe/dışa aktarabilir. Hızlı kontroller veya CI için tek satırlı bir komuttan daha ağırdır.

Insomnia

GUI uygulaması

Temiz bir istek oluşturucu ve curl içe/dışa aktarma özelliğiyle Postman'a açık kaynaklı daha hafif bir alternatif. API isteklerini düzenlemek için iyidir; Postman gibi, tek bir komut dosyalı çağrı için ihtiyacınızdan fazlasıdır.

fetch() / requests

Kod içi HTTP istemcileri

JavaScript fetch() ve Python requests, uygulama kodundan çağrı yapmanın yoludur. İsteği önce curl olarak oluşturun ve doğrulayın, ardından çevirin — yaklaşan Dönüştür sekmesi eşdeğer fetch, requests ve diğer istemci kodunu oluşturacaktır.

curl Komut Örnekleri

Basit GET İsteği

curl https://api.example.com/users

Yöntem bayrağı olmadan curl varsayılan olarak GET kullanır. Bu, mümkün olan en basit istek: bir kaynağı al ve yanıt gövdesini terminalinize yazdır. Oluşturucuya sorgu parametreleri ekleyin; bunlar otomatik olarak URL'nin sonuna kodlanarak eklenir (?page=2&limit=50).

Bearer Token ile GET

curl https://api.example.com/me \
  -H 'Authorization: Bearer YOUR_TOKEN'

Bir REST API'ye karşı yapılan en yaygın kimlik doğrulamalı çağrı. Bearer kimlik doğrulama ön ayarı Authorization: Bearer … başlığını sizin için ekler. Göndermeden önce bir JWT'nin içini incelemek için token'ı JWT çözücümüze yapıştırın.

POST JSON Gövdesi

curl -X POST https://api.example.com/users \
  -H 'Content-Type: application/json' \
  -d '{"name":"Ada","role":"admin"}'

Bir curl POST isteği oluşturucusunun temel özelliği: JSON gövde türü -X POST ekler, Content-Type: application/json başlığını iliştirir ve yükü -d ile iletir. Dağınık API yanıtlarını daha sonra JSON biçimlendiricide güzelleştirin.

POST Form (url kodlanmış)

curl -X POST https://api.example.com/login \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d 'username=ada&password=s3cret'

Klasik HTML form gönderimi. Her -d field=value çifti & ile birleştirilir ve application/x-www-form-urlencoded olarak gönderilir. curl ayrılmış karakterleri URL kodlar; alanları form gövdesi bölümünde oluşturun, araç dizeyi sizin için birleştirir.

Çok Parçalı Dosya Yükleme

curl -X POST https://api.example.com/upload \
  -F 'file=@report.pdf' \
  -F 'title=Q3 report'

curl dosya yükleme komutu multipart/form-data için -F kullanır. Diskten dosya eklemek için değerin önüne @ koyun; dosya ve metin alanlarını serbestçe karıştırın. curl çok parçalı sınırı ve Content-Type'ı otomatik olarak ayarlar — bunu asla elle ayarlamayın.

Dosyaya İndirme

curl -L -o archive.zip \
  https://example.com/files/archive.zip

Yanıt gövdesini adlandırılmış bir dosyaya kaydetmek için -o kullanın; -L ise gerçek indirme URL'sine yönelik tüm yönlendirmeleri takip eder (CDN ve yayın varlığı bağlantılarında yaygın). Sunucunun dosya adını korumak için -o yerine -O kullanın.

Temel Kimlik Doğrulama

curl -u ada:s3cret \
  https://api.example.com/private

curl temel kimlik doğrulaması için -u kullanıcı:şifre kullanır; curl kimlik bilgilerini kablo üzerinden Authorization: Basic … başlığına Base64 kodlar. Temel kimlik doğrulamayı her zaman HTTPS üzerinden gönderin — Base64 şifreleme değil kodlamadır ve önemsiz biçimde tersine çevrilebilir.

Ayrıntılı Hata Ayıklama

curl -v -i https://api.example.com/health

Bir istek sorun çıkardığında, -v tam istek satırını, gönderilen ve alınan her başlığı ve TLS el sıkışmasını yazdırır; -i ise gövde çıktısına yanıt başlıklarını dahil eder. Bir API yanlış durum kodu döndürdüğünde başvurulacak ilk şey.

curl Komutu Nasıl Oluşturulur

  1. 1

    HTTP yöntemini seçin

    GET, POST, PUT, PATCH, DELETE, HEAD veya OPTIONS seçin. curl varsayılan olarak GET kullanır; POST veya başka bir fiil seçmek oluşturulan komuta -X METHOD ekler. Veya yöntemi ve eşleşen gövdeyi tek tıklamayla ayarlamak için bir ön ayar yongasına dokunun.

  2. 2

    URL ve sorgu parametrelerini girin

    İstek URL'sini girin (ör. https://api.example.com/users). Sorgu parametrelerini anahtar/değer çiftleri olarak ekleyin; araç bunları URL kodlar ve ?key=value&… şeklinde otomatik olarak URL'ye ekler — manuel kodlama gerekmez.

  3. 3

    Başlıklar ve kimlik doğrulama ekleyin

    İstek başlıklarını anahtar/değer çiftleri olarak ekleyin, ardından bir kimlik doğrulama şeması seçin: Yok, Bearer token, Temel (kullanıcı adı/şifre) veya özel API-anahtar başlığı. Sunucunun beklediği tam biçimde doğru Authorization veya özel başlık oluşturulur.

  4. 4

    İstek gövdesini ayarlayın

    POST/PUT/PATCH için bir gövde türü seçin: ham JSON yapıştırın (Content-Type başlığı sizin için eklenir), url kodlanmış form alanları oluşturun veya çok parçalı bir yükleme oluşturup @ önekiyle herhangi bir alanı dosyaya geçirin.

  5. 5

    Seçenekleri açın

    İhtiyacınız olan bayrakları açın — yönlendirmeleri izle (-L), güvensiz TLS (-k), ayrıntılı (-v), başlıkları dahil et (-i), sıkıştırılmış (--compressed), dosyaya çıkış (-o), bağlantı zaman aşımı veya proxy (-x). Her geçiş komutu canlı olarak günceller.

  6. 6

    Kopyalayın, dışa aktarın veya sıfırlayın

    Tamamlanan komutu kopyalayın, betik olarak indirmek için .sh Dışa Aktar'ı kullanın veya formu temizlemek için Sıfırla'yı tıklayın. Kopyalamadan önce tek satırlı ve ters eğik çizgiyle devam eden çıkış arasında geçiş yapmak için Çok satırlı geçişini kullanın.

Yaygın curl Hataları

Gövdesi Olan Bir Yöntemde -X Eksikliği

-d ile gövde göndermek POST anlamına gelir, ancak PUT veya PATCH istiyorsanız bunu -X ile açıkça belirtmelisiniz. Unutmak, gövdeyi POST olarak gönderir ve sunucu yanlış durum kodu döndürür ya da isteği reddeder.

✗ Yanlış
# PATCH amaçlandı, ancak -d tek başına POST anlamına gelir
curl -d '{"role":"admin"}' \
  https://api.example.com/users/7
✓ Doğru
# Fiili açıkça belirtin
curl -X PATCH -d '{"role":"admin"}' \
  -H 'Content-Type: application/json' \
  https://api.example.com/users/7

JSON POST'ta Content-Type Eksikliği

JSON'u -d ile göndermek Content-Type başlığını AYARLAMAZ — curl varsayılan olarak application/x-www-form-urlencoded kullanır. Çoğu API daha sonra gövdeyi ayrıştırmayı başaramaz ve 400 veya 415 döndürür. JSON içerik türünü her zaman ekleyin (veya sizin için ekleyen JSON gövde ön ayarını kullanın).

✗ Yanlış
# Sunucu JSON değil urlencoded görür — 400/415
curl -X POST https://api.example.com/users \
  -d '{"name":"Ada"}'
✓ Doğru
# JSON içerik türünü bildirin
curl -X POST https://api.example.com/users \
  -H 'Content-Type: application/json' \
  -d '{"name":"Ada"}'

Tek ve Çift Tırnak Kaçışı

Çift tırnakların içinde shell $, backtick ve ! karakterlerini genişletir; JSON'u bozar veya yükünüzdeki bir $variable'ı kırar. Tek tırnaklar gövdeyi olduğu gibi geçirir. JSON gövdeleri için tek tırnak kullanın; yalnızca tek tırnakları desteklemeyen cmd.exe'de çift tırnaklara geçin.

✗ Yanlış
# $name shell tarafından boş dizeye genişletilir
curl -d "{\"user\":\"$name\"}" \
  https://api.example.com/users
✓ Doğru
# Tek tırnaklar gövdeyi olduğu gibi gönderir
curl -d '{"user":"$name"}' \
  https://api.example.com/users

GET İsteğinde -d Kullanmak

Bir isteğe -d eklemek onu sessizce POST'a dönüştürür. Sorgu parametreleriyle bir GET istediyseniz, bunları URL'ye koyun (veya -d verilerini sorgu dizesine katlamak için -G kullanın). GET'e eklenen -d, "GET'im çalışmıyor" şikayetlerinin en yaygın nedenlerinden biridir.

✗ Yanlış
# -d bunu GET değil POST yapar
curl -d 'page=2&limit=50' \
  https://api.example.com/users
✓ Doğru
# URL'deki sorgu dizesi onu GET olarak tutar
curl 'https://api.example.com/users?page=2&limit=50'

Windows Satır Devamı: ^ ile \

Ters eğik çizgi (\), bash, Git Bash ve WSL'de bir komutu bir sonraki satıra taşır. cmd.exe'de devam karakteri şapkadır (^) ve PowerShell backtick (`` ` ``) kullanır. Ters eğik çizgiyle devam eden bir komutu cmd'ye yapıştırmak bozar — Windows cmd için bu aracı tek satırlı çıkışa geçirin.

✗ Yanlış
:: cmd.exe — ters eğik çizgi devam karakteri değil
curl -X POST https://api.example.com/users \
  -d '{"name":"Ada"}'
✓ Doğru
:: cmd.exe — tek satır veya devam için ^ kullanın
curl -X POST https://api.example.com/users -d "{\"name\":\"Ada\"}"

URL'deki Boşluklar Kodlanmamış

URL veya sorgu değerindeki ham bir boşluk (veya &, #, ?) komutu bozar — shell argümanı böler ve curl kesik bir URL görür. Değeri yüzde kodlayın (boşluk %20 olur) veya curl'ün --data-urlencode ile kodlamasına izin verin. Bu araçtaki sorgu-parametre alanları otomatik olarak kodlar.

✗ Yanlış
# Boşluk argümanı böler — curl iki argüman görür
curl https://api.example.com/search?q=hello world
✓ Doğru
# Boşluğu kodlayın (veya tüm URL'yi tırnaklayın)
curl 'https://api.example.com/search?q=hello%20world'

Yaygın Kullanım Durumları

REST API Testi
Terminali terk etmeden bir REST uç noktasına karşı istek oluşturun ve gönderin: yöntemi ayarlayın, bir Bearer token yapıştırın, JSON gövdesi gönderin ve yanıtı okuyun. İstemci kodu yazmadan önce bir API'nin doğru davranıp davranmadığını doğrulamanın en hızlı yolu.
Belgelerden İsteği Yeniden Oluşturma
API belgeleri uç noktaları ve parametreleri gösterir ancak nadiren eksiksiz, kopyalamaya hazır bir komut sunar. Yöntemi, URL'yi, başlıkları ve kimlik doğrulamayı burada doldurun ve olduğu gibi çalışan bir curl komutu alın — alıntılama veya eksik Content-Type başlıklarıyla boğuşmadan.
CI/CD Duman Testi Betikleri
Sağlık kontrolü veya dağıtım sonrası duman testi için bir curl komutu oluşturun, ardından bir boru hattına eklemek için .sh Dışa Aktar'ı kullanın. Takılı bir uç noktanın yapıyı engelleyememesi için --connect-timeout ve --max-time ekleyin ve -w ile durum kodlarını kontrol edin.
Dosya Yükleme ve İndirme
Bir -F field=@file ile multipart/form-data yüklemesi oluşturun ya da CDN'ye yönlendirmeleri takip eden bir -L -o filename indirmesi oluşturun. Zorlu dosya adlarını veya sorgu değerlerini önce URL kodlayıcımızla kodlayın.
Webhook Hata Ayıklama
Sağlayıcının gönderdiği aynı JSON gövdesini, doğru imza ve Content-Type başlıklarıyla POST ederek bir webhook yükünü tekrarlayın. İşleyicinizin neden reddettiğini hata ayıklamak için tam isteği yerel olarak yeniden oluşturun.
Yeniden Üretilebilir Hata Raporları
Herkesin tam isteği yeniden üretebilmesi için bir hata raporuna veya PR'a tek, bağımsız bir curl komutu yapıştırın — yöntem, başlıklar, kimlik doğrulama yer tutucusu ve gövde. İsteği düzyazıyla açıklamaktan çok daha net.
curl Bayraklarını Öğrenme
Her form seçiminin gerçek bir bayrakla nasıl eşleştiğini görün — Temel kimlik doğrulamayı seçin ve -u göründüğünü izleyin, JSON gövdesi ekleyin ve Content-Type başlığının eklendiğini izleyin. curl kopya kağıdımızla eşleştirilmiş, sözdizimini öğrenmek için uygulamalı bir yol.
Koda Dönüştürmek İçin İstek Hazırlama
İsteği önce curl olarak oluşturun ve doğrulayın, ardından uygulamanızın HTTP istemcisine çevirin. Yaklaşan Dönüştür sekmesi, yapıştırılan bir curl komutunu fetch, requests, Go, PHP, Ruby ve Node.js'e dönüştürecek — çalıştığını bildiğiniz bir curl komutundan başlayın.

curl Bayrakları ve Sözdizimi Başvurusu

Shell Alıntılama ve Kaçış
Araç, değerleri tek tırnaklarla sarmalar; bu, POSIX shell'lerinde en güvenli formdur çünkü tek tırnaklı dize içindeki hiçbir şey genişletilmez. Değer içindeki literal tek tırnak, '\'' dizisi olarak yayılır (kapat-tırnak, kaçan tırnak, yeniden aç-tırnak). cmd.exe'de çift tırnaklara geçin; Git Bash ve WSL, oluşturulan tek tırnaklı komutları değişmeden çalıştırır.
-d ile --data-raw ile --data-binary
-d/--data gövdeden satır sonu ve satır başı karakterlerini kaldırır — key=value çiftleri için uygundur, çok satırlı içerik için kayıplıdır. --data-raw aynıdır ancak baştaki @'yı dosya adı olarak ele almaz. --data-binary baytları tam olarak verildiği gibi gönderir (ham dosya içeriğini yüklemek için @file kullanın). Yöntem geçersiz kılınmadıkça üçü de POST anlamına gelir.
Çok Parçalı (-F) ile URL Kodlanmış (-d)
-F field=value oluşturulan sınırla multipart/form-data üretir — dosya yüklemeleri (-F file=@yol) ve karışık dosya/metin formları için gereklidir. -d field=value, & ile birleştirilmiş tek bir dize olan application/x-www-form-urlencoded üretir. Çok parçalı için Content-Type'ı asla manuel olarak ayarlamayın; curl sınırı hesaplar ve başlığı kendisi ayarlar.
Kimlik Doğrulama Başlığı Kodlaması
Bearer kimlik doğrulama, Authorization: Bearer <token> değerini olduğu gibi gönderir (RFC 6750). -u kullanıcı:şifre ile Temel kimlik doğrulama, kablo üzerinden Authorization: Basic <base64> olarak Base64 kodlanır — şifreleme değil kodlama, bu nedenle HTTPS kullanın. API anahtarı, servisin gerektirdiği özel başlıktır, ör. X-API-Key: <değer>.
Sorgu Dizisi Kodlaması
Oluşturucuya eklenen sorgu parametreleri yüzde kodlanır ve ?key=value&key2=value2 olarak eklenir. Ayrılmış karakterler (boşluklar, &, =, #) kaçılır, böylece URL geçerli olur. Kodlanması gereken gövde alanları için curl'ün kendi --data-urlencode seçeneği, istek zamanında kodlamayı gerçekleştirir.
Yönlendirme Davranışı (-L)
-L olmadan curl bir 301/302 yanıtı yazdırır ve durur. -L ile son URL'ye Location başlığını takip eder. Bir yönlendirme farklı bir ana bilgisayara geçtiğinde curl'ün Authorization başlığını düşürdüğüne dikkat edin (güvenlik varsayılanı); --location-trusted seçeneğini yalnızca sonuçlarını anladığınızda kullanın.
Sıkıştırılmış Yanıtlar
--compressed, gzip/deflate/brotli desteğini bildiren bir Accept-Encoding başlığı ekler ve yanıtı şeffaf biçimde açar, bant genişliği tasarrufu sağlar. Kodu çözülmüş gövde, sıkıştırılmamış bir istekle aynıdır — tamamen bir aktarım optimizasyonudur, çoğu API çağrısında etkinleştirmek güvenlidir.
Çıkış: -o ile -O
-o filename yanıt gövdesini adlandırdığınız bir dosyaya yazar; -O onu URL yolundaki uzak dosya adı altında kaydeder. Her ikisi de normal stdout dökümünü bastırır. Dosya yazılmadan önce yönlendirmelerin gerçek varlığa çözümlenmesi için -L ile birleştirin.

curl İstekleri için En İyi Uygulamalar

Paylaşılan Komutlara Asla Gizli Bilgi Sabit Kodlamayın
Bir PR'a, bilete veya sohbete yapıştırdığınız bir curl komutu başkaları tarafından okunacak ve araçlar tarafından dizine eklenecektir. Token'ları ve şifreleri bir yer tutucu (YOUR_TOKEN) veya ortam değişkeni referansıyla değiştirin (-H "Authorization: Bearer $API_TOKEN"). Uzun kimlik bilgileri için curl, bir başlığı dosyadan -H @headerfile ile okuyabilir; böylece gizli bilgi asla shell geçmişinde görünmez.
İkili Yükler için --data-binary @file Kullanın
Gövde, baytları önemli olan bir dosyaysa — bir görüntü, imzalı bir yük, boşluğun önemli olduğu JSON — -d @file yerine --data-binary @file kullanın. Düz -d, satır sonlarını ve satır başlarını kaldırır; ikili ve çok satırlı içeriği sessizce bozar. --data-binary, dosyayı diskte olduğu gibi gönderir.
Başlık Değerlerini Tırnaklayın
-H değerlerini her zaman tırnaklarla sarın: -H 'Content-Type: application/json'. Tırnaksız olarak, iki noktadan sonraki boşluk argümanı böler ve curl bozuk bir başlık görür. Tek tırnaklar ayrıca shell'in değer içindeki $, * ve diğer özel karakterleri genişletmesini de durdurur — bu aracın varsayılan olarak yaydığı tam olarak budur.
Bant Genişliği Tasarrufu için --compressed Kullanın
gzip/brotli kodlaması istemek ve curl'ün şeffaf biçimde açmasını sağlamak için API çağrılarına ve indirmelere --compressed ekleyin. JSON ağırlıklı API'ler için bu, gördüğünüz yanıtta herhangi bir değişiklik olmaksızın aktarım boyutunu yüzde 70-90 oranında azaltabilir — uç noktaları tekrar tekrar yoklayan betiklerde ücretsiz bir kazanım.
Betiklerde Zaman Aşımlarını Sabitleyin
Herhangi bir otomatik bağlamda, yavaş veya takılı bir uç noktanın boru hattını sonsuza kadar engelleyememesi için --connect-timeout ve --max-time ekleyin. --max-time 10 ile bir sağlık kontrolü hızla başarısız olur ve CI'nızın devam etmesine izin verir. Hemen vazgeçmeden geçici ağ aksaklıklarını absorbe etmek için --retry N ile eşleştirin.
Otomatikleştirmeden Önce -v ile Doğrulayın
Bir curl komutunu bir betiğe veya cron işine yerleştirmeden önce, tam istek satırını, başlıkları ve TLS el sıkışmasını görmek için bir kez -v ile çalıştırın. Yanlış bir yöntemi, eksik bir Content-Type'ı veya eklenmemiş bir kimlik doğrulama başlığını yakalamanın en hızlı yoludur — etkileşimli olarak hata ayıklayın, ardından üretim için -v'yi kaldırın.

Sıkça Sorulan Sorular

Bu araç ne işe yarar?
Basit bir formdan çalıştırmaya hazır bir curl komutu oluşturur. HTTP yöntemini seçer, URL yazarsınız, sorgu parametreleri ve başlıklar eklersiniz, bir kimlik doğrulama şeması seçersiniz (Yok, Bearer, Temel veya API anahtar başlığı), bir istek gövdesi ayarlarsınız (JSON, form, çok parçalı veya dosya yükleme) ve yönlendirme takibi veya ayrıntılı gibi seçenek bayraklarını açarsınız. Formu doldururken curl komutu sayfanın altında canlı olarak yeniden oluşturulur — kopyalayın, .sh betiği olarak dışa aktarın ya da tek satırlı ve çok satırlı çıkış arasında geçiş yapın. Bu araç; bir REST API'yi test etme, belgelerden bir isteği yeniden oluşturma veya bir hata raporuna yeniden üretilebilir bir komut ekleme gibi günlük iş akışları için oluşturulmuş bir curl komut oluşturucusudur. Bayrakların kendisi hakkında daha derin bir başvuru için curl kopya kağıdımıza bakın.
Verilerim (token'lar, URL'ler) herhangi bir yere yükleniyor mu?
Hayır. Komutun tamamı tarayıcınızda JavaScript ile oluşturulur. Token'larınız, kimlik bilgileriniz, URL'leriniz, başlıklarınız ve istek gövdeleriniz hiçbir sunucuya iletilmez, saklanmaz veya günlüğe kaydedilmez — bunu tarayıcınızın Ağ sekmesinde onaylayabilirsiniz; bir komut oluşturmak sıfır ağ isteği tetikler. Bu nedenle araç, gerçek üretim uç noktaları ve canlı API anahtarlarıyla kullanmak için güvenlidir: yazdığınız hiçbir şey cihazınızı terk etmez. Komut yalnızca kopyalayıp kendi terminalinizde çalıştırdığınızda bir şey yapar.
curl ile JSON içeren POST isteği nasıl gönderilir?
Yöntemi POST olarak ayarlayın ve JSON gövde türünü seçin; araç curl -X POST <url> -H 'Content-Type: application/json' -d '{…}' üretir. İki kısım önemlidir: -d (veya --data) bayrağı gövdeyi taşır ve Content-Type: application/json başlığı sunucuya nasıl ayrıştırılacağını söyler — başlığı atlarsanız birçok çerçeve yükü yok sayar veya yanlış okur. Modern curl (7.82+), başlığı ve gövdeyi birlikte ayarlayan --json kısayolunu da sunar. Çağrının ardından yanıtı JSON biçimlendiricide güzelleştirmek ve doğrulamak için yapıştırın.
curl isteğine Bearer token nasıl eklenir?
Bearer YOUR_TOKEN değeriyle bir Authorization başlığı ekleyin ya da "Bearer ile GET" ön ayarını seçip token'ınızı yapıştırın. Oluşturulan komut curl <url> -H 'Authorization: Bearer YOUR_TOKEN' şeklindedir. Bearer kelimesi, tek bir boşluk, ardından token — bu tam biçim OAuth 2.0 Bearer spec (RFC 6750) tarafından gereklidir. Göndermeden önce bir token'ın iddialarını ve son kullanma tarihini incelemek için JWT çözücümüzle çözün.
curl ile dosya nasıl yüklenir?
Çok Parçalı gövde türünü kullanın ve bir alanı Dosya olarak değiştirin: araç curl -X POST <url> -F 'file=@/path/to/file' yayar. @ öneki, curl'a dosyayı diskten okumasını ve multipart/form-data olarak göndermesini söyler; aynı istekte hem dosyalar hem de düz metin değerleri için daha fazla -F alanı ekleyebilirsiniz. Çok parçalı için Content-Type başlığını kendiniz ayarlamayın — curl sınırı oluşturur ve başlığı otomatik olarak ayarlar; geçersiz kılmak yüklemeyi bozar. Tek dosyalı bir PUT için curl -T file <url> kullanır.
Tarayıcı DevTools'dan kopyalanan bir komutu ("cURL olarak kopyala") içe aktarabilir miyim?
Henüz değil — bu bir sonraki sürümde yayınlanacak Dönüştür sekmesidir. Yapıştırılan bir curl komutunu (DevTools'un "cURL olarak kopyala" ile oluşturduğu dahil) ayrıştırıp JavaScript fetch, Python requests, Go, PHP, Ruby ve Node.js'e çevirecektir. Şimdilik araç bir oluşturucudur: URL, başlıklar, kimlik doğrulama ve gövde alanlarını elle doldurarak isteği yeniden oluşturun. DevTools çıktısı ayrıntılı ama okunabilir — her -H başlığını başlıklar bölümüne ve URL'yi URL alanına kopyalayın.
Windows'ta curl nasıl farklıdır?
curl ikili dosyası aynı şekilde davranır; shell alıntılaması farklıdır. cmd.exe'de değerlerin etrafında çift tırnak (") ve satır devamı için şapka (^) kullanırsınız; tek tırnakların özel anlamı yoktur. PowerShell'de curl, açıkça curl.exe çağırmadıkça Invoke-WebRequest için bir takma addır ve alıntılama kuralları yeniden farklılık gösterir. En ağrısız seçenek Git Bash veya WSL'dir; burada bu aracın ürettiği Unix tarzı tek tırnaklı komutlar değişmeden çalışır. cmd kullanmanız gerekiyorsa, oluşturulan komutu tek satıra geçirin ve '…' alıntılamasını "…" ile değiştirin.
-d, --data-raw ve --data-binary arasındaki fark nedir?
-d (takma adı --data) bir gövde gönderir ve verilerden satır sonu ve satır başı karakterlerini kaldırır — key=value form çiftleri için uygundur, birden fazla satıra yayılan JSON için risklidir. --data-raw aynıdır ancak baştaki @ karakterini dosya adı olarak ele almaz, bu nedenle verileriniz gerçekten @ ile başlayabildiğinde güvenli seçenektir. --data-binary baytları satır sonu kaldırma olmadan tam olarak verildiği gibi gönderir — bir dosyanın ham içeriğini yüklemek (--data-binary @file.json) veya boşluğun önemli olduğu herhangi bir yük için doğru bayrak. Üçü de yöntemi geçersiz kılmadıkça POST anlamına gelir.
curl ile çerezler nasıl gönderilir?
Çerez göndermek için -b, kaydetmek için -c kullanın. -b 'name=value' literal bir çerez dizisi gönderirken, -b cookies.txt Netscape biçimli bir dosyadan çerezleri okur. Bir sunucunun ayarladığı çerezleri yakalamak için (örneğin bir girişten sonra), bunları bir kavanoza yazmak için -c cookies.txt ekleyin, ardından bir sonraki istekte bu kavanozu -b cookies.txt ile yeniden kullanın. Bu oluşturucu başlıklar, kimlik doğrulama ve gövdeye odaklanır; bir çerez başlığı için başlıklar bölümüne Cookie: name=value başlığı da ekleyebilirsiniz.
Yönlendirmeler nasıl takip edilir?
"Yönlendirmeleri izle (-L)" seçeneğini açın veya -L bayrağını elle ekleyin. Varsayılan olarak curl 301/302 yanıtı yazdırır ve durur; -L ise son hedefe Location başlığını takip etmesini söyler. Bu, CDN'lerin arkasındaki indirme bağlantıları, kısaltılmış URL'ler ve HTTP'yi HTTPS'e yönlendiren API'ler için vazgeçilmezdir. Yönlendirme çözüldükten sonra indirilen bir dosyayı kaydetmek için -o filename ile birleştirin.
İstek zaman aşımı nasıl ayarlanır?
curl'ın bağlantıyı kurmak için ne kadar bekleyeceğini sınırlayan --connect-timeout <saniye> eklemek için "Bağlantı zaman aşımı" seçeneğini kullanın. Bağlantı artı indirme dahil tüm aktarım için bir üst sınır için oluşturulan komuta elle --max-time <saniye> ekleyin. Zaman aşımlarını sabitlemek herhangi bir betik veya CI duman testinde en iyi uygulamadır: bunlar olmadan takılı bir uç nokta boru hattınızı süresiz olarak engelleyebilir. Geçici hataları yeniden denemek istiyorsanız --retry N ile eşleştirin.

htpasswd Oluşturucu — bcrypt, Apache MD5 (apr1), Basic Auth

Web & API

bcrypt, Apache MD5 (apr1), SHA-1 ve daha fazlasıyla htpasswd girdisi oluşturun. Apache, nginx ve Docker için yapıştırmaya hazır yapılandırma alın. Tarayıcınızda %100 çalışır — yükleme yok.

Open Graph ve Meta Etiketi Oluşturucu

Web & API

Open Graph, Twitter Card ve SEO meta etiketlerini canlı Google, Facebook ve X önizlemesiyle çevrimiçi oluşturun. %100 ücretsiz, tarayıcıda çalışır, kayıt yok — kodu kopyalayıp yapıştırın.

nginx location test aracı — o blok neden kazanır

Web & API

Hangi nginx location bloğu kazanır — ve diğerleri neden kaybeder. =, ^~, ~ ve ~* için ücretsiz test aracı, tamamen tarayıcınızda.

IPv4 Alt Ağ Hesaplayıcı

Web & API

IPv4 CIDR bloğu için ağ adresini, yayın adresini, kullanılabilir ana bilgisayar aralığını, alt ağ maskesini ve joker maskeyi çevrimiçi hesaplayın. /31 bağlantıları RFC 3021'e göre işler; tamamen tarayıcınızda çalışır.

traceparent Çözücü — W3C Trace Context

Web & API

Hex basamağı saymayı bırakın. Ücretsiz çevrimiçi traceparent çözücü — tarayıcınızda çalışır, yükleme yok. Trace ID, span ID, 8 trace-flags biti, tracestate, Datadog/X-Ray/B3.

AES Şifre Çözme Aracı — OpenSSL ve CryptoJS Uyumlu

Güvenlik Araçları

AES şifreli metnini online çözün — GCM/CBC/CTR, parola veya ham anahtar, OpenSSL ve CryptoJS "U2FsdGVkX1" biçimini otomatik algılar. %100 tarayıcıda, anahtarlar sayfadan asla çıkmaz.