Menu

Konverter cURL

Ubah perintah curl apa pun menjadi fetch, axios, Python requests, Go, PHP, dan lainnya.

Oleh Nethanel Bar, Co-founder & CEO

Terakhir diperbarui

Siap benar-benar belajar coding?

Coddy mengajarimu dengan menulis kode sungguhan di browser: pelajaran interaktif, umpan balik instan, dan bantuan AI saat kamu buntu.

Apa itu cURL converter?

cURL converter mengubah perintah curl, format yang dipakai di setiap dokumentasi API, ekspor Postman, dan asisten AI, menjadi kode siap tempel untuk bahasa pemrograman yang benar-benar kamu pakai. Header, query string, body JSON, upload multipart, basic auth, dan cookie semuanya ikut terbawa, jadi kamu tidak perlu menerjemahkan request dengan tangan.

curl adalah cara universal untuk menuliskan sebuah HTTP request, tapi kamu jarang *menjalankan* curl di production. Yang kamu jalankan adalah fetch di JavaScript, requests di Python, net/http di Go, atau apa pun yang dipakai stack-mu. Alat ini menjembatani celah itu: tempel curl-nya, klik sebuah tab, salin kodenya.

Semuanya berjalan secara lokal di browser-mu. Perintah curl, header, dan token-mu tidak pernah meninggalkan perangkatmu. Berguna saat kamu menempel perintah yang berisi bearer token atau cookie sesi sungguhan.

Yang akan kamu pelajari saat mengonversi

  • Flag curl dipetakan ke konsep tertentu di setiap HTTP client: -H adalah header request, -d adalah body, -X adalah method, -u adalah basic auth, dan -F adalah field form multipart.
  • Kalau curl melihat body (-d, --data, -F) tanpa -X, defaultnya adalah POST, sama dengan default kebanyakan client. Jadi -X yang tidak ditulis tetap menjadi POST di output.
  • Body JSON berbeda dengan body form. Content-Type: application/json berarti body dikirim apa adanya; application/x-www-form-urlencoded berarti pasangan key/value digabung dengan &.
  • -G memindahkan body ke query string untuk request GET. Output-nya mencerminkan hal itu: kamu akan melihat params / query terisi dan tidak ada body yang dikirim.

Cara mengubah curl ke kode langkah demi langkah

  1. Tempel perintah curl-mu

    Masukkan perintah lengkapnya, termasuk sambungan baris \ dari dokumentasi yang kamu salin, ke kotak input. Parser otomatis menormalkan tanda kutip miring dan penanda prompt PowerShell.

  2. Pilih bahasa tujuan

    Tab mencakup JavaScript fetch, TypeScript, Node axios, Python requests, Python httpx, Go, PHP, Ruby, Java HttpClient, C# HttpClient, HTTPie, dan PowerShell. Berganti tab tidak memakan biaya apa pun, karena parse hanya berjalan sekali.

  3. Periksa request hasil parse

    Buka panel *Request hasil parse* untuk memastikan method, URL, header, jenis body, dan opsi seperti insecure atau follow redirects terbaca sesuai harapanmu.

  4. Salin lalu sesuaikan auth

    Salin kode yang dihasilkan ke proyekmu. Kalau curl-nya berisi bearer token atau cookie, ganti nilai literalnya dengan environment variable sebelum commit.

Referensi cepat flag cURL

Flag yang dipahami konverter ini dan padanannya di kode yang dihasilkan.

FlagArtiContoh
-X, --requestMethod HTTP-X POST
-H, --headerHeader request (bisa diulang)-H 'Accept: application/json'
-d, --dataBody request, di-URL-encode secara default-d 'name=Ada&age=30'
--data-rawBody tanpa ekspansi @file--data-raw '$body'
--data-urlencodePercent-encode satu bagian body--data-urlencode 'q=hello world'
-F, --formField form multipart (pakai @file untuk file)-F 'avatar=@photo.jpg'
-u, --userBasic auth → Authorization: Basic …-u alice:s3cret
-G, --getPindahkan body ke query string, kirim GET-G -d 'q=ada'
-b, --cookieHeader Cookie-b 'session=abc'
-A, --user-agentHeader User-Agent-A 'MyApp/1.0'
-L, --locationIkuti redirect 3xx-L
-k, --insecureLewati verifikasi TLS (hanya untuk dev!)-k
--compressedTerima response gzip/deflate/br--compressed
--max-timeTimeout seluruh request dalam detik--max-time 30

Contoh konversi cURL

GET dengan query string dan header auth

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();

Parameter query di URL tetap berada di URL: konverter tidak memecahnya lagi menjadi objek params terpisah untuk fetch. Untuk axios dan requests, kamu akan melihatnya dipindahkan ke params / params= supaya lebih mudah dibaca.

POST body JSON

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()

Ketika body bisa di-parse sebagai JSON dan Content-Type adalah application/json, konverter menghasilkan json= untuk requests dan data: (objek hasil parse) untuk axios. String literal aslinya dipertahankan saat JSON.parse gagal, tidak pernah ditulis ulang.

Upload file multipart

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 menjadi upload file sungguhan (open('…', 'rb') di Python, FormData.append di JavaScript). Field -F biasa menjadi nilai form biasa. Preview browser menampilkan placeholder TODO untuk blob file yang perlu kamu sediakan saat runtime.

Basic auth + cookie

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 diringkas menjadi satu header Authorization. Cookie digabung dengan ; dan dikirim sebagai satu header Cookie, sama seperti yang dilakukan curl saat mengirim request.

Kesalahan umum saat mengonversi curl

  • Menempel curl dengan tanda kutip miring (', ', ", ") dari sebuah blog. Bentuknya mirip tanda kutip, tapi merusak parsing shell. Konverter menormalkannya, tapi salin perintah aslinya kalau bisa.
  • Membiarkan -k (--insecure) di production. Flag ini mematikan verifikasi sertifikat TLS: tidak apa-apa untuk dev lokal, tapi berbahaya untuk traffic sungguhan.
  • Lupa bahwa --data-raw dan --data berperilaku berbeda: --data meng-URL-encode input-nya. Pakai --data-raw untuk body JSON yang berisi @ atau &.
  • Menempel perintah curl.exe Windows tanpa mengubah sambungan baris ^ menjadi \. Konverter menangani hal ini, tapi parser-nya ketat soal tanda kutip, jadi periksa lagi batas setiap string.
  • Menyalin bearer token atau cookie ke version control setelah konversi. Ganti dengan environment variable (process.env.API_TOKEN, os.environ['API_TOKEN']) sebelum commit.

FAQ cURL Converter

Bahasa apa saja yang didukung konverter ini?

Dua belas target langsung tersedia: JavaScript (fetch), TypeScript (fetch), Node (axios), Python (requests), Python (httpx), Go (net/http), PHP (curl), Ruby (Net::HTTP), Java (HttpClient), C# (HttpClient), HTTPie, dan PowerShell (Invoke-RestMethod). Semuanya dihasilkan dari representasi hasil parse yang sama, jadi berganti tab terjadi seketika.

Apakah konverter ini menangani upload multipart dan flag -F?
Ya. -F field=value menjadi field form biasa, -F file=@path menjadi upload file sungguhan memakai FormData (JS), files= (Python), CURLFile (PHP), dan seterusnya. Path file muncul sebagai placeholder TODO yang perlu kamu hubungkan ke File, Buffer, atau stream saat runtime.
Apakah perintah curl saya dikirim ke server?

Tidak. Parser dan setiap generator kode berjalan di browser-mu. Bearer token, cookie, dan body request tidak pernah meninggalkan perangkatmu, bahkan secara default kami menyamarkannya di preview *Request hasil parse*.

Kenapa curl Windows saya terlihat berbeda?
curl.exe di Windows (dan CMD/PowerShell) memakai ^ atau backtick ` sebagai sambungan baris, dan bisa memberi tanda kutip pada string dengan cara berbeda. Konverter menormalkan pola Windows yang umum, tapi kalau hasil tempelan terlihat salah, coba salin perintahnya dalam satu baris.
Apakah konverter ini mendukung request GraphQL?
Ya. Request GraphQL hanyalah POST dengan body JSON yang berisi query dan variables. Tempel curl-nya, dan konverter menghasilkan POST JSON biasa dalam bahasa tujuanmu. Perlakukan bentuk response-nya ({ data, errors }) sama seperti di GraphQL client mana pun.
Bisakah saya menempel curl hasil ekspor Postman?
Bisa. Ekspor *Code → cURL* dari Postman didukung penuh, termasuk format multi-baris dengan \. Begitu juga curl hasil *Copy as cURL* di DevTools Chrome dan Firefox.
fetch atau axios, output mana yang sebaiknya saya pilih?

Pakai fetch kalau proyekmu sudah memakainya (sudah tersedia di browser dan Node modern). Pakai axios kalau kamu butuh parsing JSON otomatis, request interceptor, retry, atau progress event, yaitu fitur yang tidak disediakan fetch secara bawaan.

Pelajari lebih lanjut

Alat developer lainnya

Ilustrasi bahasa pemrograman di Coddy

Belajar coding dengan Coddy

Mulai