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.
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özdizimiRenkli çı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 istemcileriJavaScript 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
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 METHODekler. Veya yöntemi ve eşleşen gövdeyi tek tıklamayla ayarlamak için bir ön ayar yongasına dokunun. - 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
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
Authorizationveya özel başlık oluşturulur. - 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-Typebaş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
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
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.
# PATCH amaçlandı, ancak -d tek başına POST anlamına gelir
curl -d '{"role":"admin"}' \
https://api.example.com/users/7 # 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).
# Sunucu JSON değil urlencoded görür — 400/415
curl -X POST https://api.example.com/users \
-d '{"name":"Ada"}' # 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.
# $name shell tarafından boş dizeye genişletilir
curl -d "{\"user\":\"$name\"}" \
https://api.example.com/users # 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.
# -d bunu GET değil POST yapar curl -d 'page=2&limit=50' \ https://api.example.com/users
# 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.
:: cmd.exe — ters eğik çizgi devam karakteri değil
curl -X POST https://api.example.com/users \
-d '{"name":"Ada"}' :: 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.
# Boşluk argümanı böler — curl iki argüman görür curl https://api.example.com/search?q=hello world
# 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-Typebaş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-timeoutve--max-timeekleyin ve-wile durum kodlarını kontrol edin. - Dosya Yükleme ve İndirme
- Bir
-F field=@fileilemultipart/form-datayüklemesi oluşturun ya da CDN'ye yönlendirmeleri takip eden bir-L -o filenameindirmesi 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-Typebaş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
-ugöründüğünü izleyin, JSON gövdesi ekleyin veContent-Typebaş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/--datagö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-rawaynıdır ancak baştaki@'yı dosya adı olarak ele almaz.--data-binarybaytları tam olarak verildiği gibi gönderir (ham dosya içeriğini yüklemek için@filekullanı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=valueoluşturulan sınırlamultipart/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 olanapplication/x-www-form-urlencodedüretir. Çok parçalı içinContent-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ı:şifreile Temel kimlik doğrulama, kablo üzerindenAuthorization: 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=value2olarak 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-urlencodeseçeneği, istek zamanında kodlamayı gerçekleştirir. - Yönlendirme Davranışı (-L)
-Lolmadan curl bir 301/302 yanıtı yazdırır ve durur.-Lile son URL'yeLocationbaşlığını takip eder. Bir yönlendirme farklı bir ana bilgisayara geçtiğinde curl'ünAuthorizationbaşlığını düşürdüğüne dikkat edin (güvenlik varsayılanı);--location-trustedseç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 birAccept-Encodingbaş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 filenameyanıt gövdesini adlandırdığınız bir dosyaya yazar;-Oonu 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-Lile 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 @headerfileile 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 @fileyerine--data-binary @filekullanı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
-Hdeğ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
--compressedekleyin. 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-timeoutve--max-timeekleyin.--max-time 10ile 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 Nile 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
-vile çalıştırın. Yanlış bir yöntemi, eksik birContent-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?
.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?
curl ile JSON içeren POST isteği nasıl gönderilir?
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?
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?
-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?
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?
-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?
-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?
--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. İlgili Araçlar
Tüm araçları görüntüleyin →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.