Nasıl kullanılır?
- İsteği curl olarak kopyalayın; örneğin tarayıcınızın geliştirici araçlarından (Ağ sekmesi, sağ tıklama, cURL olarak kopyala) veya API dokümantasyonundan.
- Kutuya yapıştırın. \ ile satır devamı sorunsuzdur.
- JavaScript fetch, Node.js axios, Python requests veya PHP cURL seçin.
- Kodun altındaki notları okuyun, ardından sonucu kopyalayın veya indirin.
Nasıl çalışır?
Dönüştürücü önce komutu, POSIX kabuğunun yaptığı gibi sözcüklere ayırır: tek tırnaklar, ters eğik çizgili kaçışlar içeren çift tırnaklar, $'…' dizgeleri ve ters eğik çizgili satır devamları anlaşılır. $TOKEN gibi kabuk değişkenleri genişletilmez; metin olarak kalır.
Desteklenen curl seçenekleri: URL (veya --url), -X/--request, -H/--header, -d/--data, --data-ascii, --data-raw, --data-binary, --data-urlencode, --json, -F/--form ve --form-string (alanlar ve ;type= ile @dosya yüklemeleri), -u/--user, -G/--get, -I/--head, -A/--user-agent, -e/--referer, -b/--cookie (çerez dizgeleri), -L/--location ve --compressed. Kısa seçenekler -sSL'de olduğu gibi birleştirilebilir ve değerler -XPOST'ta olduğu gibi bitişik yazılabilir.
Kurallar curl'ü izler: birden çok -d değeri & ile birleştirilir; -X veya -G aksini söylemedikçe veri isteği POST yapar; -G veriyi sorgu dizesi olarak URL'ye ekler; --json, Content-Type ve Accept başlıklarını application/json olarak ayarlar. Gövde JSON olduğunda ve Content-Type bunu söylediğinde kod, kaçışlı bir dize yerine gerçek bir nesne gönderir (Python'da json=, PHP'de json_encode ile bir dizi). Çok parçalı formlarda, sınırın doğru olması için Content-Type başlığı kütüphaneye bırakılır.
-k/--insecure bilinçli olarak yok sayılır ve bir not bunu açıklar. Yalnızca curl'ün kendi çıktısını değiştiren seçenekler (-s, -S, -v, -i, -o, --fail ve benzerleri) bir notla yok sayılır. Başka herhangi bir seçenek, sessizce farklı bir şey yapan kod yerine o seçeneği adlandıran açık bir hata üretir. Bir fark kalır: curl yönlendirmeleri yalnızca -L ile izlerken fetch, axios ve requests varsayılan olarak izler; PHP kodu yalnızca -L verildiğinde izler.
Araç yalnızca kod yazar. İsteği asla göndermez; bu nedenle komuttaki token'lar ve parolalar hiçbir yerde kullanılmaz.
Örnekler
Bir tarayıcı isteğini Python'da yeniden oluşturma
Chrome'un Ağ sekmesinden hatalı bir API çağrısını cURL olarak kopyalayıp Python requests'e dönüştürün. Başlıklar, çerezler ve JSON gövdesi de aktarılır; böylece hatayı bir betikte yeniden oluşturabilirsiniz.
Node.js'te API dokümantasyonunu kullanma
Bir API referansı şu komutu gösterir: “curl -u key: https://api.example.com/v1/charges -d amount=2000 -d currency=eur”. Axios sürümü auth: { username: "key", password: "" } ve form ile kodlanmış bir gövde kullanır.
PHP'de dosya yükleme
“curl -F 'file=@invoice.pdf;type=application/pdf' -F 'note=March' https://x.io/upload” komutu, new CURLFile('invoice.pdf', 'application/pdf') ve note alanını içeren CURLOPT_POSTFIELDS değerine dönüşür.
Sık sorulan sorular
Bu araç isteğimi gönderiyor mu?
Hayır. Yalnızca komut metnini ayrıştırır ve kod yazar. Hiçbir istek gönderilmez; bu nedenle komuttaki API anahtarları veya çerezler kullanılmaz ve saklanmaz.
Neden -k/--insecure dönüştürülmüyor?
Sertifika denetimlerini kapatmak bağlantıyı dinlenmeye açık hâle getirir. Oluşturulan kod denetimleri açık tutar; bir sunucunun sertifikasına güvenilmiyorsa sertifikayı veya güven deposunu düzeltin.
Neden “option is not supported” mesajını alıyorum?
Dönüştürücü yalnızca anlamını birebir karşılayabildiği seçenekleri çevirir. Proxy'ler, istemci sertifikaları, cookie jar dosyaları ve benzer seçenekler reddedilir; böylece curl'den farklı davranan kod elde etmezsiniz.
Windows cmd komutlarıyla çalışır mı?
“cURL (bash)” olarak kopyalanan komutlar en iyi sonucu verir. Windows cmd, satır devamı için ^ ve farklı tırnaklama kullanır; satır sonlarındaki ^ kabul edilir, ancak diğer cmd kaçış işaretleri desteklenmeyebilir.
Gizlilik
Komut yalnızca tarayıcınızda çözümlenir ve hiçbir istek gönderilmez. Hiçbir şey yüklenmez, saklanmaz veya analizlere dahil edilmez.