Menu

cURL Dönüştürücü

Herhangi bir curl komutunu fetch, axios, Python requests, Go, PHP ve daha fazlasına dönüştürün.

Son güncelleme

curl komutunu yapıştırBaşlamak için bir curl komutu yapıştır
JavaScript (fetch)
12 dilde kod üretmek için yukarıya bir curl komutu yapıştır.

cURL dönüştürücü nedir?

Bir cURL dönüştürücü, her API dokümantasyonunun, Postman dışa aktarımının ve yapay zekâ asistanının ürettiği curl komutunu alıp gerçek programlama dilinde yapıştırmaya hazır koda çevirir. Başlıklar, query string'ler, JSON gövdeler, multipart yüklemeleri, basic auth ve çerezler birebir taşınır; böylece isteği elle çevirmek zorunda kalmazsın.

curl, bir HTTP isteğini tarif etmenin evrensel yoludur; ama production'da neredeyse hiç *curl çalıştırmazsın*. Çalıştırdığın şey JavaScript fetch, Python requests, Go'nun net/http paketi ya da stack'inde ne varsa odur. Bu araç o boşluğu kapatır: curl'ü yapıştır, sekmeye tıkla, kodu kopyala.

Her şey tarayıcında, yerel olarak çalışır. curl komutun, başlıkların ve token'ların makinenden dışarı çıkmaz — gerçek bearer token veya session çerezi içeren komutları yapıştırırken bu çok işine yarar.

Dönüştürürken neler öğreneceksin

  • curl flag'leri her HTTP istemcisindeki belirli kavramlara karşılık gelir: -H bir istek başlığı, -d bir gövde, -X bir method, -u basic auth ve -F bir multipart form alanıdır.
  • curl bir gövde (-d, --data, -F) görürse ve -X belirtilmemişse varsayılan olarak POST kullanır — çoğu istemcinin de varsayılanı aynıdır, dolayısıyla -X belirtilmemiş olsa bile çıktıda POST görürsün.
  • JSON gövdeler ile form gövdeleri farklıdır. Content-Type: application/json, gövdenin olduğu gibi gönderildiği anlamına gelir; application/x-www-form-urlencoded ise anahtar/değer çiftlerinin & ile birleştirildiği anlamına gelir.

Adım adım curl komutunu koda dönüştürme

  1. curl komutunu yapıştır

    Tam komutu — kopyala-yapıştır yaptığın dokümanlardan gelen \ satır birleştirmeleri dahil — giriş kutusuna bırak. Ayrıştırıcı, akıllı tırnakları ve PowerShell prompt işaretlerini otomatik olarak normalize eder.

  2. Hedef dili seç

    Sekmeler şunları kapsar: JavaScript fetch, TypeScript, Node axios, Python requests, Python httpx, Go, PHP, Ruby, Java HttpClient, C# HttpClient, HTTPie ve PowerShell. Sekme değiştirmek ücretsizdir — ayrıştırma bir kez çalışır.

  3. Ayrıştırılan isteği incele

    *Ayrıştırılan istek* panelini açarak method, URL, başlıklar, gövde türü ve insecure veya follow redirects gibi seçeneklerin beklediğin gibi taşınıp taşınmadığını doğrula.

  4. Kodu kopyala ve kimlik doğrulamayı ayarla

    Üretilen kodu projene kopyala. curl bir bearer token veya çerez içeriyorsa, commit etmeden önce literal değeri bir ortam değişkeniyle değiştir.

cURL flag'leri hızlı referansı

Bu dönüştürücünün anladığı flag'ler ve üretilen kodda neye karşılık geldikleri.

FlagAnlamıÖrnek
-X, --requestHTTP methodu-X POST
-H, --headerİstek başlığı (tekrarlanabilir)-H 'Accept: application/json'
-d, --dataİstek gövdesi — varsayılan olarak URL kodlar-d 'name=Ada&age=30'
--data-raw@file genişletmesi olmadan gövde--data-raw '$body'
--data-urlencodeGövdenin bir parçasını yüzde-kodla--data-urlencode 'q=hello world'
-F, --formMultipart form alanı (dosyalar için @file kullan)-F 'avatar=@photo.jpg'
-u, --userBasic auth → Authorization: Basic …-u alice:s3cret
-G, --getGövdeyi query string'e taşı, GET gönder-G -d 'q=ada'
-b, --cookieCookie başlığı-b 'session=abc'
-A, --user-agentUser-Agent başlığı-A 'MyApp/1.0'
-L, --location3xx yönlendirmelerini takip et-L
-k, --insecureTLS doğrulamasını atla (sadece geliştirme için!)-k
--compressedgzip/deflate/br yanıtı kabul et--compressed
--max-timeSaniye cinsinden toplam istek zaman aşımı--max-time 30

cURL dönüştürme örnekleri

Query string ve auth başlığı ile GET

curl
curl 'https://api.example.com/v1/lessons?limit=20&track=python' \  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.demo'
JavaScript (fetch)
const response = await fetch('https://api.example.com/v1/lessons?limit=20&track=python', {  method: 'GET',  headers: {    'Authorization': 'Bearer eyJhbGciOiJIUzI1NiJ9.demo'  }});const data = await response.json();

URL'deki query parametreleri URL'de kalır — dönüştürücü fetch için bunları ayrı bir params nesnesine bölmez. axios ve requests'te ise okunabilirlik için params / params= içine alındıklarını görürsün.

JSON gövde ile POST

curl
curl 'https://api.example.com/v1/users' \  -H 'Content-Type: application/json' \  --data-raw '{"name":"Ada","age":36}'
Python (requests)
import requests
headers = {    'Content-Type': 'application/json',}json_data = {"name":"Ada","age":36}
response = requests.post('https://api.example.com/v1/users', headers=headers, json=json_data)response.raise_for_status()

Gövde JSON olarak ayrıştığında ve Content-Type application/json olduğunda, dönüştürücü requests için json=, axios için data: (ayrıştırılmış nesne) üretir. JSON.parse başarısız olursa orijinal literal string olduğu gibi korunur — asla yeniden yazılmaz.

Multipart dosya yükleme

curl
curl 'https://api.example.com/upload' \  -F 'caption=Hello' \  -F 'photo=@./avatar.jpg'
Python (requests)
import requests
files = {    'caption': (None, 'Hello'),    'photo': open('./avatar.jpg', 'rb'),}
response = requests.post('https://api.example.com/upload', files=files)response.raise_for_status()

-F field=@file, gerçek bir dosya yükleme haline gelir (Python'da open('…', 'rb'), JavaScript'te FormData.append). Düz -F alanları normal form değerlerine dönüşür. Tarayıcı önizlemesi, çalışma zamanında sağlaman gereken dosya blob'ları için TODO yer tutucusu gösterir.

Basic auth + çerez

curl
curl 'https://api.example.com/me' \  -u alice:s3cret \  -b 'session=2f9a; theme=dark'
JavaScript (fetch)
const response = await fetch('https://api.example.com/me', {  method: 'GET',  headers: {    'Authorization': 'Basic YWxpY2U6czNjcmV0',    'Cookie': 'session=2f9a; theme=dark'  }});

Basic auth tek bir Authorization başlığında toplanır. Çerezler ; ile birleştirilerek tek bir Cookie başlığı olarak gönderilir — curl'ün hat üstünde yaptığıyla aynı şekilde.

curl dönüştürürken sık yapılan hatalar

  • Bir blog yazısından akıllı tırnaklı (', ', ", ") curl yapıştırmak — tırnak gibi görünürler ama shell ayrıştırmasını bozarlar. Dönüştürücü bunları normalize eder, ama mümkünse orijinal komutu kopyala.
  • production'da -k (--insecure) bırakmak. TLS sertifika doğrulamasını devre dışı bırakır — yerel geliştirme için sorun değil, gerçek trafikte tehlikelidir.
  • --data-raw ile --data'nın farklı davrandığını unutmak — --data girdiyi URL kodlar. @ veya & içeren JSON gövdeler için --data-raw kullan.

cURL Dönüştürücü SSS

Dönüştürücü hangi dilleri destekliyor?
Kutudan çıkar çıkmaz on iki hedef: JavaScript (fetch), TypeScript (fetch), Node (axios), Python (requests), Python (httpx), Go (net/http), PHP (curl), Ruby (Net::HTTP), Java (HttpClient), C# (HttpClient), HTTPie ve PowerShell (Invoke-RestMethod). Her biri aynı ayrıştırılmış temsilden üretilir — sekme değiştirmek anlıktır.
Multipart yüklemeleri ve -F flag'lerini destekliyor mu?
Evet. -F field=value normal bir form alanına, -F file=@path ise FormData (JS), files= (Python), CURLFile (PHP) gibi yapılar kullanan gerçek bir dosya yüklemesine dönüşür. Dosya yolları, çalışma zamanında bir File, Buffer veya stream'e bağlaman gereken TODO yer tutucuları olarak görünür.
curl komutum bir sunucuya gönderiliyor mu?
Hayır. Ayrıştırıcı ve tüm kod üreticileri tarayıcında çalışır. Bearer token'lar, çerezler ve istek gövdeleri makinenden çıkmaz — varsayılan olarak *Ayrıştırılan istek* önizlemesinde bunları maskeliyoruz bile.
Windows curl'üm neden farklı görünüyor?
Windows curl.exe (ve CMD/PowerShell) satır birleştirme için ^ veya backtick \` kullanır ve string'leri farklı tırnaklayabilir. Dönüştürücü yaygın Windows kalıplarını normalize eder, ama bir yapıştırma yanlış görünüyorsa komutu tek satır halinde kopyalamayı dene.
GraphQL isteklerini destekliyor mu?
Evet — bir GraphQL isteği, query ve variables içeren bir JSON gövdesiyle yapılan POST'tan başka bir şey değildir. curl'ü yapıştır; dönüştürücü hedef dilinde normal bir JSON POST üretir. Yanıt yapısını ({ data, errors }) herhangi bir GraphQL istemcisinde nasıl ele alıyorsan öyle ele al.
Postman'den dışa aktarılmış bir curl yapıştırabilir miyim?
Evet. Postman'in *Code → cURL* dışa aktarımı, çok satırlı \ formatlaması dahil olmak üzere tamamen desteklenir. Chrome ve Firefox DevTools'taki tarayıcı *Copy as cURL* ile üretilen curl de aynı şekilde desteklenir.
fetch mi axios mı — hangi çıktıyı seçmeliyim?
Projende zaten varsa fetch kullan (tarayıcılarla ve modern Node ile birlikte gelir). Otomatik JSON ayrıştırması, istek interceptor'ları, yeniden denemeler veya ilerleme olayları gerekiyorsa axios kullan — fetch bu özellikleri kutudan çıkar çıkmaz sunmaz.

Daha fazla bilgi

Diğer geliştirici araçları

Coddy programming languages illustration

Coddy ile kodlamayı öğren

BAŞLA