Skip to content

Generator & Builder Perintah cURL

Buat perintah curl di browser Anda — atur metode, header, autentikasi, dan body, dapatkan perintah siap salin secara instan. Preset untuk Bearer, POST JSON, unggah file. Gratis, privat, tanpa pendaftaran.

Tanpa Pelacakan Berjalan di Browser Gratis
Perintah Anda dibangun sepenuhnya di browser Anda. Token, URL, dan payload tidak pernah meninggalkan perangkat Anda.
Preset
Parameter query
Header
Autentikasi
Body permintaan
Opsi
Perintah yang dihasilkan
Ditinjau untuk pembuatan perintah curl yang benar di seluruh metode, auth, dan tipe body, lampiran header yang akurat per tipe body, dan quoting dan escaping yang aman untuk shell — Go Tools Engineering Team · Jun 3, 2026

Apa Itu Perintah curl?

curl adalah alat baris perintah untuk mentransfer data melalui HTTP dan lusinan protokol lainnya. Perintah curl adalah nama binary, sekumpulan flag, dan URL — misalnya `curl -X POST https://api.example.com/users -H 'Content-Type: application/json' -d '{"name":"Ada"}'`. Karena curl tersedia di hampir setiap mesin Linux, macOS, dan Windows modern, ini adalah cara universal untuk menguji API, mereproduksi permintaan dari dokumentasi, atau memeriksa kesehatan layanan dari dalam skrip CI. Keringkasannya yang membuatnya powerful juga membuatnya sulit diingat, itulah mengapa visual builder sangat membantu.

Setiap perintah curl memiliki anatomi yang sama. Metode (`-X GET`, `-X POST`, …) menetapkan kata kerja HTTP, dengan default GET. URL adalah endpoint, dengan parameter query ditambahkan setelah `?`. Header (`-H 'Key: Value'`, dapat diulang) membawa metadata seperti `Accept` dan `Content-Type`. Autentikasi hanyalah header khusus — `-H 'Authorization: Bearer …'` untuk token, `-u user:pass` untuk Basic auth, atau custom `-H 'X-API-Key: …'`. Body (`-d` untuk data mentah atau form, `-F` untuk multipart dan unggah file) membawa payload. Akhirnya, flag opsi seperti `-L` (ikuti pengalihan), `-i` (sertakan header respons), dan `-v` (verbose) membentuk perilaku. Alat ini menyajikan setiap bagian tersebut sebagai kolom form dan membangun ulang perintah secara langsung.

Gunakan generator perintah curl saat Anda akan kesulitan dengan quoting, melupakan header `Content-Type` pada POST JSON, atau merakit unggahan multipart secara manual. Builder mendapatkan escaping tanda kutip tunggal yang aman untuk shell dengan benar, mengodekan query string Anda, dan melampirkan header yang tepat untuk setiap tipe body — lalu Anda menyalin perintah yang dapat dipercaya. Untuk referensi flag demi flag yang lengkap dengan 40+ contoh yang dapat dijalankan, baca cheat sheet curl pendamping; untuk mengodekan nilai query-string yang sulit, Anda dapat menggunakan encoder URL kami.

Semuanya terjadi di browser Anda. Token, kredensial, URL, dan body permintaan Anda dirakit dengan JavaScript sisi klien dan tidak pernah dikirim ke mana pun — sehingga Anda dapat membangun perintah terhadap endpoint produksi nyata dengan kunci API nyata dan tidak ada yang meninggalkan perangkat Anda.

# 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'

Fitur Utama

Visual Request Builder

Susun seluruh permintaan sebagai kolom form — metode, URL, parameter query, header, auth, body, dan opsi — alih-alih menghafal urutan flag dan quoting. Tidak perlu lagi menebak apakah URL harus sebelum atau setelah `-d`.

Perintah Langsung dengan Salin & Ekspor

Perintah curl dibangun ulang pada setiap penekanan tombol di bagian bawah halaman. Salin ke clipboard dalam satu klik, atau Ekspor .sh untuk mengunduh skrip shell yang dapat dijalankan langsung ke repositori atau pekerjaan CI.

Dukungan Autentikasi Penuh

Bearer token, Basic auth (`-u user:pass`), dan header API-key kustom, masing-masing dihasilkan dalam format persis yang diharapkan server. Pilih skema, tempel kredensial, dan header `Authorization` atau kustom yang tepat dibuat untuk Anda.

Setiap Tipe Body

JSON mentah (dengan header `Content-Type` yang sesuai ditambahkan secara otomatis), kolom form `application/x-www-form-urlencoded`, dan unggahan `multipart/form-data` di mana setiap kolom dapat diubah menjadi file dengan awalan `@`.

Enam Preset Satu Klik

GET with Bearer, POST JSON, Form upload, Basic auth, Download `-o`, dan Verbose debug mengisi seluruh form dalam satu ketukan. Mulai dari permintaan yang berfungsi untuk tugas API paling umum dan sesuaikan dari sana.

Output Multi-baris & Satu Baris

Beralih antara perintah satu baris yang ringkas untuk tempel cepat dan versi multi-baris dengan backslash yang mudah dibaca dalam skrip atau ditinjau dalam pull request. Perintah yang sama, dua bentuk.

Privasi 100% Berbasis Browser

Token, URL, header, dan body permintaan dirakit sepenuhnya di sisi klien dan tidak pernah meninggalkan perangkat Anda — verifikasi di tab Network. Aman untuk endpoint produksi dan kredensial aktif tanpa paparan data.

Dibuat untuk Alur Kerja DevTools

Dirancang di sekitar loop sehari-hari pengujian API dan mereproduksi permintaan dari DevTools browser "Copy as cURL". Tab Convert yang mem-parse perintah curl yang ditempelkan ke fetch, requests, Go, PHP, Ruby, dan Node.js hadir di rilis berikutnya.

Alternatif curl & Klien HTTP

HTTPie

CLI, sintaks ramah manusia

CLI modern dengan output berwarna dan sintaks yang lebih ringkas (`http POST api.example.com/users name=Ada`). Menyetel `Content-Type` JSON secara default. Lebih ramah untuk penggunaan interaktif; curl unggul dalam ubiquity dan portabilitas skrip.

wget

CLI, fokus unduhan

Terbaik untuk unduhan rekursif dan pencerminan situs; mengikuti pengalihan dan mencoba ulang secara default. Lebih lemah dari curl untuk metode arbitrer, header kustom, dan pengujian API. Sering dipra-instal bersama curl di Linux.

Postman

Aplikasi GUI

GUI lengkap untuk membangun, menyimpan, dan berbagi permintaan dengan koleksi, lingkungan, dan sinkronisasi tim. Bagus untuk pekerjaan API eksplorasi; dapat mengimpor/mengekspor curl. Lebih berat dari perintah satu baris untuk pemeriksaan cepat atau CI.

Insomnia

Aplikasi GUI

Alternatif open-source yang lebih ringan dari Postman dengan builder permintaan yang bersih dan impor/ekspor curl. Bagus untuk mengorganisir permintaan API; seperti Postman, lebih dari yang Anda butuhkan untuk satu panggilan yang discriptkan.

fetch() / requests

Klien HTTP dalam kode

JavaScript `fetch()` dan Python `requests` adalah cara Anda membuat panggilan dari kode aplikasi. Bangun dan verifikasi permintaan sebagai curl terlebih dahulu, lalu terjemahkan — tab Convert yang akan datang akan menghasilkan fetch, requests, dan kode klien lainnya yang setara.

Contoh Perintah curl

Permintaan GET Biasa

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

Tanpa flag metode, curl secara default menggunakan GET. Ini adalah permintaan paling sederhana — ambil sumber daya dan cetak body respons ke terminal Anda. Tambahkan parameter query di builder dan secara otomatis dikodekan URL ke akhir (`?page=2&limit=50`).

GET dengan Bearer Token

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

Panggilan terautentikasi paling umum terhadap REST API. Preset Bearer auth menambahkan header `Authorization: Bearer …` untuk Anda. Untuk memeriksa isi JWT sebelum mengirimnya, tempel token ke decoder JWT kami.

POST Body JSON

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

Standar generator permintaan POST curl: tipe body JSON menetapkan `-X POST`, melampirkan header `Content-Type: application/json`, dan meneruskan payload dengan `-d`. Format respons API yang berantakan setelahnya dengan formatter JSON kami.

POST Form (urlencoded)

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

Pengiriman form HTML klasik. Setiap pasangan `-d field=value` digabungkan dengan `&` dan dikirim sebagai `application/x-www-form-urlencoded`. curl mengodekan URL karakter khusus; buat kolom di bagian body form dan alat akan merakit string untuk Anda.

Unggah File Multipart

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

Perintah unggah file curl menggunakan `-F` untuk `multipart/form-data`. Awali nilai dengan `@` untuk melampirkan file dari disk; gabungkan kolom file dan teks dengan bebas. curl menetapkan boundary multipart dan `Content-Type` secara otomatis — jangan pernah menyetelnya secara manual.

Unduh ke File

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

Simpan body respons ke file bernama dengan `-o`, dan `-L` mengikuti pengalihan ke URL unduhan nyata (umum dengan CDN dan tautan release-asset). Gunakan `-O` alih-alih `-o` untuk menyimpan nama file dari server.

Autentikasi Basic

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

curl basic auth menggunakan `-u user:pass`; curl mengodekan Base64 kredensial menjadi header `Authorization: Basic …` melalui kabel. Selalu kirim Basic auth melalui HTTPS — Base64 adalah pengkodean, bukan enkripsi, dan mudah dibalik.

Debug Verbose

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

Ketika permintaan bermasalah, `-v` mencetak baris permintaan lengkap, setiap header yang dikirim dan diterima, dan handshake TLS; `-i` menyertakan header respons dalam output body. Yang pertama dicari saat API mengembalikan kode status yang salah.

Cara Membangun Perintah curl

  1. 1

    Pilih metode HTTP

    Pilih GET, POST, PUT, PATCH, DELETE, HEAD, atau OPTIONS. curl default ke GET; memilih POST atau kata kerja lain menambahkan `-X METHOD` ke perintah yang dihasilkan. Atau ketuk chip preset untuk menetapkan metode dan body yang sesuai dalam satu klik.

  2. 2

    Masukkan URL dan parameter query

    Ketik URL permintaan (mis. `https://api.example.com/users`). Tambahkan parameter query sebagai pasangan kunci/nilai dan alat akan mengodekan URL-nya serta menambahkan `?key=value&…` ke URL secara otomatis — tidak perlu pengkodean manual.

  3. 3

    Tambahkan header dan autentikasi

    Tambahkan header permintaan sebagai pasangan kunci/nilai, lalu pilih skema auth: None, Bearer token, Basic (nama pengguna/sandi), atau header API-key kustom. Header `Authorization` atau kustom yang tepat dihasilkan dalam format persis yang diharapkan server.

  4. 4

    Atur body permintaan

    Untuk POST/PUT/PATCH, pilih tipe body: tempel JSON mentah (header `Content-Type` ditambahkan untuk Anda), buat kolom form urlencoded, atau rakit unggahan multipart dan ubah kolom mana pun menjadi file dengan awalan `@`.

  5. 5

    Aktifkan opsi

    Aktifkan flag yang Anda butuhkan — ikuti pengalihan (`-L`), TLS tidak aman (`-k`), verbose (`-v`), sertakan header (`-i`), terkompresi (`--compressed`), output ke file (`-o`), batas waktu koneksi, atau proxy (`-x`). Setiap toggle memperbarui perintah secara langsung.

  6. 6

    Salin, ekspor, atau reset

    Salin perintah yang sudah selesai, Ekspor .sh untuk mengunduhnya sebagai skrip, atau Reset untuk menghapus form. Gunakan toggle Multi-baris untuk beralih antara output satu baris dan multi-baris dengan backslash sebelum Anda menyalin.

Kesalahan curl yang Umum

Hilangnya -X dengan Metode yang Memiliki Body

Mengirim body dengan `-d` menyiratkan POST, tetapi jika Anda memerlukan PUT atau PATCH Anda harus menyatakannya secara eksplisit dengan `-X`. Melupakannya mengirim body sebagai POST dan server mengembalikan status yang salah atau menolak permintaan.

✗ Salah
# Bermaksud PATCH, tetapi -d saja menyiratkan POST
curl -d '{"role":"admin"}' \
  https://api.example.com/users/7
✓ Benar
# Tetapkan kata kerja secara eksplisit
curl -X PATCH -d '{"role":"admin"}' \
  -H 'Content-Type: application/json' \
  https://api.example.com/users/7

Content-Type Hilang pada POST JSON

Mengirim JSON dengan `-d` TIDAK menyetel header `Content-Type` — curl default ke `application/x-www-form-urlencoded`. Sebagian besar API kemudian gagal mem-parse body dan mengembalikan 400 atau 415. Selalu lampirkan tipe konten JSON (atau gunakan preset body JSON, yang menambahkannya untuk Anda).

✗ Salah
# Server melihat urlencoded, bukan JSON — 400/415
curl -X POST https://api.example.com/users \
  -d '{"name":"Ada"}'
✓ Benar
# Deklarasikan tipe konten JSON
curl -X POST https://api.example.com/users \
  -H 'Content-Type: application/json' \
  -d '{"name":"Ada"}'

Escaping Tanda Kutip Tunggal vs Ganda

Di dalam tanda kutip ganda shell memperluas `$`, backtick, dan `!`, merusak JSON atau mengalami error pada `$variable` di dalam payload Anda. Tanda kutip tunggal meneruskan body secara harfiah. Gunakan tanda kutip tunggal untuk body JSON; beralih ke tanda kutip ganda hanya di `cmd.exe`, yang tidak mendukung tanda kutip tunggal.

✗ Salah
# $name diperluas oleh shell menjadi string kosong
curl -d "{\"user\":\"$name\"}" \
  https://api.example.com/users
✓ Benar
# Tanda kutip tunggal mengirim body secara harfiah
curl -d '{"user":"$name"}' \
  https://api.example.com/users

Menggunakan -d pada Permintaan GET

Menambahkan `-d` ke permintaan secara diam-diam mengubahnya menjadi POST. Jika Anda menginginkan GET dengan parameter query, masukkan ke URL (atau gunakan `-G` untuk melipat data `-d` ke query string). `-d` pada GET adalah salah satu alasan paling umum mengapa "GET saya tidak berfungsi".

✗ Salah
# -d menjadikan ini POST, bukan GET
curl -d 'page=2&limit=50' \
  https://api.example.com/users
✓ Benar
# Query string pada URL menjaganya sebagai GET
curl 'https://api.example.com/users?page=2&limit=50'

Kelanjutan Baris Windows: ^ vs \

Backslash (`\`) melanjutkan perintah ke baris berikutnya di bash, Git Bash, dan WSL. Di `cmd.exe` karakter kelanjutan adalah caret (`^`), dan PowerShell menggunakan backtick (`` ` ``). Menempelkan perintah berlanjut-backslash ke `cmd` akan merusaknya — alihkan alat ini ke output satu baris untuk `cmd` Windows.

✗ Salah
:: cmd.exe — backslash bukan karakter kelanjutan
curl -X POST https://api.example.com/users \
  -d '{"name":"Ada"}'
✓ Benar
:: cmd.exe — satu baris, atau gunakan ^ untuk melanjutkan
curl -X POST https://api.example.com/users -d "{\"name\":\"Ada\"}"

Spasi dalam URL Tidak Dikodekan

Spasi mentah (atau `&`, `#`, `?`) dalam URL atau nilai query merusak perintah — shell membagi argumen dan curl melihat URL yang terpotong. Kodekan persen nilainya (spasi menjadi `%20`) atau biarkan curl mengkodekannya dengan `--data-urlencode`. Kolom parameter query dalam alat ini dikodekan secara otomatis.

✗ Salah
# Spasi membagi argumen — curl melihat dua argumen
curl https://api.example.com/search?q=hello world
✓ Benar
# Kodekan spasi (atau kutip seluruh URL)
curl 'https://api.example.com/search?q=hello%20world'

Kasus Penggunaan Umum

Pengujian REST API
Bangun dan kirim permintaan ke endpoint REST tanpa meninggalkan terminal: atur metode, tempel Bearer token, kirim body JSON, dan baca respons. Cara tercepat untuk mengonfirmasi API berperilaku sebelum menulis kode klien.
Mereproduksi Permintaan dari Dokumentasi
Dokumentasi API menampilkan endpoint dan parameter tetapi jarang perintah lengkap yang siap salin. Isi metode, URL, header, dan auth di sini dan dapatkan perintah curl yang langsung berjalan — tanpa berjuang dengan quoting atau header `Content-Type` yang hilang.
Skrip Smoke-Test CI/CD
Hasilkan perintah curl untuk pemeriksaan kesehatan atau uji asap pasca-deploy, lalu Ekspor .sh untuk dimasukkan ke pipeline. Tambahkan `--connect-timeout` dan `--max-time` agar endpoint yang macet tidak dapat memblokir build, dan periksa kode status dengan `-w`.
Unggah & Unduh File
Rakit unggahan `multipart/form-data` dengan `-F field=@file`, atau buat unduhan `-L -o filename` yang mengikuti pengalihan ke CDN. Enkode nama file atau nilai query yang sulit terlebih dahulu dengan encoder URL kami.
Debug Webhook
Putar ulang payload webhook dengan POST body JSON yang sama yang dikirim penyedia, dengan header tanda tangan dan `Content-Type` yang tepat. Reproduksi permintaan persis secara lokal untuk men-debug mengapa handler Anda menolaknya.
Laporan Bug yang Dapat Direproduksi
Tempel satu perintah curl yang berdiri sendiri ke laporan bug atau PR sehingga siapa pun dapat mereproduksi permintaan persis — metode, header, placeholder auth, dan body. Jauh lebih jelas daripada mendeskripsikan permintaan dalam prosa.
Belajar Flag curl
Lihat bagaimana setiap pilihan form dipetakan ke flag nyata — pilih Basic auth dan perhatikan `-u` muncul, tambahkan body JSON dan perhatikan header `Content-Type` terlampir. Cara hands-on untuk mempelajari sintaks, dipasangkan dengan cheat sheet curl kami.
Mempersiapkan Permintaan untuk Dikonversi ke Kode
Bangun dan verifikasi permintaan sebagai curl terlebih dahulu, lalu terjemahkan ke klien HTTP aplikasi Anda. Tab Convert yang akan datang akan mengubah perintah curl yang ditempelkan menjadi fetch, requests, Go, PHP, Ruby, dan Node.js — mulai dari perintah curl yang Anda ketahui berfungsi.

Referensi Flag & Sintaks curl

Quoting & Escaping Shell
Alat ini membungkus nilai dalam tanda kutip tunggal, bentuk paling aman di shell POSIX karena tidak ada yang di dalam string bertanda kutip tunggal yang diperluas. Tanda kutip tunggal literal di dalam nilai dihasilkan sebagai urutan `'\''` (tutup-kutip, kutip yang di-escape, buka-kutip kembali). Di `cmd.exe` beralih ke tanda kutip ganda; Git Bash dan WSL menjalankan perintah kutip tunggal yang dihasilkan tanpa perubahan.
-d vs --data-raw vs --data-binary
`-d`/`--data` menghapus baris baru dan carriage return dari body — baik untuk pasangan `key=value`, merusak untuk konten multi-baris. `--data-raw` sama tetapi tidak memperlakukan `@` di awal sebagai nama file. `--data-binary` mengirim byte persis seperti yang diberikan (gunakan `@file` untuk mengunggah konten file mentah). Ketiganya menyiratkan POST kecuali metode diganti.
Multipart (-F) vs URL-encoded (-d)
`-F field=value` menghasilkan `multipart/form-data` dengan boundary yang dibuat — diperlukan untuk unggah file (`-F file=@path`) dan form campuran file/teks. `-d field=value` menghasilkan `application/x-www-form-urlencoded`, string tunggal yang digabungkan dengan `&`. Jangan pernah menyetel `Content-Type` secara manual untuk multipart; curl menghitung boundary dan menyetel header sendiri.
Pengkodean Header Auth
Bearer auth mengirim `Authorization: Bearer ` verbatim (RFC 6750). Basic auth dari `-u user:pass` dikodekan Base64 menjadi `Authorization: Basic ` melalui kabel — pengkodean, bukan enkripsi, jadi gunakan HTTPS. API key adalah header kustom apa pun yang diperlukan layanan, mis. `X-API-Key: `.
Pengkodean Query-String
Parameter query yang ditambahkan di builder dikodekan persen dan ditambahkan sebagai `?key=value&key2=value2`. Karakter khusus (spasi, `&`, `=`, `#`) di-escape agar URL valid. Untuk kolom body yang harus dikodekan, `--data-urlencode` curl sendiri menangani pengkodean saat waktu permintaan.
Perilaku Pengalihan (-L)
Tanpa `-L`, curl mencetak respons 301/302 dan berhenti. Dengan `-L` curl mengikuti header `Location` ke URL akhir. Perhatikan bahwa curl menghapus header `Authorization` ketika pengalihan berpindah ke host yang berbeda (default keamanan); gunakan `--location-trusted` hanya ketika Anda memahami implikasinya.
Respons Terkompresi
`--compressed` menambahkan header `Accept-Encoding` yang mengiklankan dukungan gzip/deflate/brotli dan secara transparan mendekompres respons, menghemat bandwidth. Body yang didekodekan identik dengan permintaan yang tidak terkompresi — murni optimisasi transfer, aman untuk diaktifkan pada sebagian besar panggilan API.
Output: -o vs -O
`-o filename` menulis body respons ke file yang Anda namai; `-O` menyimpannya dengan nama file remote dari path URL. Keduanya menekan dump stdout normal. Gabungkan dengan `-L` agar pengalihan diselesaikan ke aset nyata sebelum file ditulis.

Praktik Terbaik untuk Permintaan curl

Jangan Pernah Hard-Code Rahasia dalam Perintah yang Dibagikan
Perintah curl yang Anda tempel ke PR, tiket, atau obrolan akan dibaca orang lain dan diindeks oleh alat. Ganti token dan sandi dengan placeholder (`YOUR_TOKEN`) atau referensikan variabel lingkungan (`-H "Authorization: Bearer $API_TOKEN"`). Untuk kredensial panjang, curl dapat membaca header dari file dengan `-H @headerfile` sehingga rahasia tidak pernah muncul di riwayat shell.
Pilih --data-binary @file untuk Payload Biner
Ketika body adalah file yang byte-nya penting — gambar, payload yang ditandatangani, JSON di mana spasi signifikan — gunakan `--data-binary @file` daripada `-d @file`. `-d` biasa menghapus baris baru dan carriage return, secara diam-diam merusak konten biner dan multi-baris. `--data-binary` mengirim file persis seperti di disk.
Kutip Nilai Header
Selalu bungkus nilai `-H` dalam tanda kutip: `-H 'Content-Type: application/json'`. Tanpa tanda kutip, spasi setelah titik dua memisahkan argumen dan curl melihat header yang salah format. Tanda kutip tunggal juga mencegah shell dari memperluas `$`, `*`, dan karakter khusus lainnya di dalam nilai — persis seperti yang dihasilkan alat ini secara default.
Gunakan --compressed untuk Menghemat Bandwidth
Tambahkan `--compressed` pada panggilan API dan unduhan untuk meminta pengkodean gzip/brotli dan biarkan curl mendekompres secara transparan. Untuk API berbasis JSON ini dapat mengurangi ukuran transfer sebesar 70–90% tanpa perubahan pada respons yang Anda lihat — kemenangan gratis dalam skrip yang mem-polling endpoint berulang kali.
Tetapkan Batas Waktu dalam Skrip
Dalam konteks otomatis apa pun, tambahkan `--connect-timeout` dan `--max-time` agar endpoint yang lambat atau macet tidak dapat memblokir pipeline selamanya. Pemeriksaan kesehatan dengan `--max-time 10` gagal dengan cepat dan membiarkan CI Anda melanjutkan. Gabungkan dengan `--retry N` untuk menyerap gangguan jaringan sementara tanpa langsung menyerah.
Verifikasi dengan -v Sebelum Mengotomatiskan
Sebelum memanggang perintah curl ke dalam skrip atau cron job, jalankan sekali dengan `-v` untuk melihat baris permintaan persis, header, dan handshake TLS. Ini adalah cara tercepat untuk menangkap metode yang salah, `Content-Type` yang hilang, atau header auth yang tidak terlampir — debug secara interaktif, lalu hapus `-v` untuk produksi.

Pertanyaan yang Sering Diajukan

Apa yang dilakukan alat ini?
Alat ini membangun perintah curl siap pakai dari form sederhana. Anda memilih metode HTTP, mengetik URL, menambahkan parameter query dan header, memilih skema autentikasi (None, Bearer, Basic, atau header API-key), mengatur body permintaan (JSON, form, multipart, atau unggah file), dan mengaktifkan flag opsi seperti follow-redirects atau verbose. Saat Anda mengisi form, perintah curl dibangun ulang secara langsung di bagian bawah halaman — salin, ekspor sebagai skrip `.sh`, atau beralih antara output satu baris dan multi-baris. Ini adalah generator perintah curl yang dibuat untuk alur kerja sehari-hari dalam menguji REST API, mereproduksi permintaan dari dokumentasi, atau memasukkan perintah yang dapat direproduksi ke dalam laporan bug. Untuk referensi lebih mendalam tentang flag-nya sendiri, lihat cheat sheet curl kami.
Apakah data saya (token, URL) diunggah ke mana pun?
Tidak. Seluruh perintah dirakit di browser Anda dengan JavaScript. Token, kredensial, URL, header, dan body permintaan Anda tidak pernah ditransmisikan, disimpan, atau dicatat di server mana pun — Anda dapat mengonfirmasi ini di tab Network browser Anda, di mana membangun perintah tidak memicu permintaan jaringan sama sekali. Inilah mengapa alat ini aman digunakan dengan endpoint produksi nyata dan kunci API aktif: tidak ada yang Anda ketik yang meninggalkan perangkat Anda. Perintah hanya melakukan sesuatu ketika Anda menyalinnya dan menjalankannya sendiri di terminal Anda.
Bagaimana cara mengirim permintaan POST dengan JSON di curl?
Atur metode ke POST dan pilih tipe body JSON; alat menghasilkan `curl -X POST -H 'Content-Type: application/json' -d '{…}'`. Dua bagian penting: flag `-d` (atau `--data`) membawa body, dan header `Content-Type: application/json` memberi tahu server cara mem-parse-nya — hilangkan header dan banyak framework mengabaikan atau salah membaca payload. curl modern (7.82+) juga menawarkan pintasan `--json` yang menetapkan header dan body sekaligus. Setelah panggilan, tempel respons ke formatter JSON kami untuk pretty-print dan validasi.
Bagaimana cara menambahkan Bearer token ke permintaan curl?
Tambahkan header `Authorization` dengan nilai `Bearer YOUR_TOKEN`, atau pilih preset "GET with Bearer" dan tempel token Anda. Perintah yang dihasilkan adalah `curl -H 'Authorization: Bearer YOUR_TOKEN'`. Kata `Bearer`, satu spasi, lalu token — format persis itu diperlukan oleh spesifikasi OAuth 2.0 Bearer (RFC 6750). Untuk memeriksa klaim dan tanggal kedaluwarsa token sebelum mengirimnya, decode dengan JWT decoder kami.
Bagaimana cara mengunggah file dengan curl?
Gunakan tipe body Multipart dan ubah kolom ke File: alat menghasilkan `curl -X POST -F 'file=@/path/to/file'`. Awalan `@` memberi tahu curl untuk membaca file dari disk dan mengirimkannya sebagai `multipart/form-data`; Anda dapat menambahkan lebih banyak kolom `-F` untuk file maupun nilai teks biasa dalam permintaan yang sama. Jangan atur header `Content-Type` sendiri untuk multipart — curl menghasilkan boundary dan menyetel header secara otomatis, dan menggantinya akan merusak unggahan. Untuk PUT file tunggal, curl menggunakan `-T file `.
Bisakah saya mengimpor perintah yang disalin dari DevTools browser ("Copy as cURL")?
Belum — itu adalah tab Convert, yang akan hadir di rilis berikutnya. Tab tersebut akan mem-parse perintah curl yang ditempelkan (termasuk yang dihasilkan DevTools dengan "Copy as cURL") dan menerjemahkannya ke JavaScript fetch, Python requests, Go, PHP, Ruby, dan Node.js. Untuk saat ini alat ini adalah builder: buat ulang permintaan dengan mengisi kolom URL, header, auth, dan body secara manual. Output DevTools verbose tapi mudah dibaca — salin setiap header `-H` ke bagian headers dan URL ke kolom URL.
Apa perbedaan curl di Windows?
Binary curl berperilaku sama; quoting shell-nya berbeda. Di `cmd.exe` Anda menggunakan tanda kutip ganda (`"`) di sekitar nilai dan karakter caret (`^`) untuk kelanjutan baris, dan tanda kutip tunggal tidak memiliki arti khusus. Di PowerShell, `curl` adalah alias untuk `Invoke-WebRequest` kecuali Anda memanggil `curl.exe` secara eksplisit, dan aturan quoting berbeda lagi. Opsi paling mudah adalah Git Bash atau WSL, di mana perintah kutip tunggal gaya Unix yang dihasilkan alat ini berjalan tanpa perubahan. Jika Anda harus menggunakan `cmd`, alihkan perintah yang dihasilkan ke satu baris dan ganti quoting `'…'` dengan `"…"`.
Apa perbedaan antara -d, --data-raw, dan --data-binary?
`-d` (alias `--data`) mengirim body dan menghapus baris baru dan carriage return dari data — baik untuk pasangan `key=value` form, berisiko untuk JSON yang mencakup beberapa baris. `--data-raw` identik tetapi tidak memperlakukan `@` di awal sebagai nama file, sehingga merupakan pilihan aman ketika data Anda mungkin secara harfiah dimulai dengan `@`. `--data-binary` mengirim byte persis seperti yang diberikan tanpa penghapusan baris baru sama sekali — flag yang tepat untuk mengunggah konten mentah file (`--data-binary @file.json`) atau payload mana pun di mana spasi penting. Ketiganya menyiratkan POST kecuali Anda mengganti metode.
Bagaimana cara mengirim cookie dengan curl?
Gunakan `-b` untuk mengirim cookie dan `-c` untuk menyimpannya. `-b 'name=value'` mengirim string cookie literal, sementara `-b cookies.txt` membaca cookie dari file format Netscape. Untuk menangkap cookie yang ditetapkan server (misalnya setelah login), tambahkan `-c cookies.txt` untuk menulisnya ke jar, lalu gunakan kembali jar tersebut dengan `-b cookies.txt` pada permintaan berikutnya. Builder ini berfokus pada header, auth, dan body; untuk header cookie Anda juga dapat menambahkan header `Cookie: name=value` di bagian headers.
Bagaimana cara mengikuti pengalihan?
Aktifkan "Follow redirects (-L)" atau tambahkan flag `-L` secara manual. Secara default curl mencetak respons 301/302 dan berhenti; `-L` memberi tahu curl untuk mengikuti header `Location` ke tujuan akhir. Ini penting untuk tautan unduhan di balik CDN, URL yang diperpendek, dan API yang mengalihkan HTTP ke HTTPS. Gabungkan dengan `-o filename` untuk menyimpan file yang diunduh setelah pengalihan diselesaikan.
Bagaimana cara menetapkan batas waktu permintaan?
Gunakan opsi "Connect timeout" untuk menambahkan `--connect-timeout `, yang membatasi berapa lama curl menunggu untuk membuat koneksi. Untuk batas waktu seluruh transfer — koneksi ditambah unduhan — tambahkan `--max-time ` ke perintah yang dihasilkan secara manual. Menetapkan batas waktu adalah praktik terbaik dalam skrip atau uji asap CI apa pun: tanpanya, endpoint yang macet dapat memblokir pipeline Anda tanpa batas. Gabungkan dengan `--retry N` jika Anda ingin curl mencoba ulang kegagalan sementara.