Parser cURL
Berjalan di browser Anda; tidak ada yang diunggah
Baca perintah cURL sebagai request yang dikirimnya, dan ubah menjadi fetch, Python requests, atau bash yang rapi. Tidak ada yang dikirim.
Command
No command yet
Apa itu perintah cURL?
cURL adalah program command-line untuk mengirim request HTTP, dan perintah cURL adalah cara paling umum developer berbagi request. Satu baris memuat semua yang diterima server: method setelah -X, URL, setiap header setelah -H, dan body setelah -d.
Perintah cURL ada di mana-mana dalam pekerjaan API. Dokumentasi API menampilkan contoh dalam cURL, developer tools browser menyediakan Copy as cURL untuk setiap request jaringan, dan laporan bug sering menyertakannya agar masalah bisa diulang dengan persis.
curl menambahkan bagian request yang tidak ditulis di perintah, dan justru bagian itulah yang sering menjebak. -d mengubah GET menjadi POST dan mengirim Content-Type: application/x-www-form-urlencoded, jadi body JSON tanpa Content-Type JSON sampai ke server sebagai form. Beberapa opsi -d digabung dengan &. -G justru memindahkan data ke query string, dan -u user:password menjadi header Authorization tipe Basic. Parser menampilkan header-header ini dan menandai opsi mana yang menambahkannya.
Cara memakai tool ini
- 1Tempel perintah ke panel Command, atau pilih salah satu dari Examples. Perintah yang disalin dari Chrome atau Firefox bisa langsung dipakai, termasuk Copy as cURL (cmd) dari Windows dengan escape
^, dan perintah PowerShell dengan sambungan baris backtick. - 2Baca request di tab Request: method dan alasan curl memakainya, URL yang dipecah per bagian, parameter query, header, body (JSON dirapikan tanpa mengubah nilai apa pun), dan opsi yang didaftar parser tetapi tidak ditafsirkan.
- 3Catatan di bagian atas tab Request menunjukkan hal-hal yang perlu diketahui, seperti body JSON yang dikirim sebagai form. Show, atau F8, menaruh kursor di opsi yang bersangkutan.
- 4Buka tab Code untuk mendapatkan request yang sama sebagai JavaScript fetch, Python requests, atau perintah bash rapi multi-baris, lalu salin.
- 5Tidy (Shift+Alt+F) menulis ulang perintah di editor sebagai bash, satu opsi per baris. Ctrl+Z membatalkannya.
Pemecahan masalah
- Tanda kutip tunggal atau ganda tidak ditutup
- Ada tanda kutip yang dibuka dan tidak pernah ditutup, jadi sisa perintah dibaca sebagai satu argumen. Di bash, tanda kutip tunggal tidak boleh muncul di dalam '…'; tulis sebagai
'\''atau gunakan$'…'. Editor menandai tempat tanda kutip itu dibuka. - URL tidak ditemukan
- Setiap argumen dibaca sebagai opsi atau nilai opsi. Pastikan URL-nya ada dan tidak berada di dalam tanda kutip yang belum ditutup, dan opsi seperti
-oatau-upunya nilainya sendiri sebelum URL. - Body terlihat seperti JSON tetapi dikirim sebagai form
-dtanpa Content-Type membuat curl mengirimapplication/x-www-form-urlencoded. Tambahkan-H "Content-Type: application/json", atau gunakan--json, yang mengatur Content-Type sekaligus Accept.- URL berisi [ ] atau { }
- curl memperlakukannya sebagai pola dan mengirim beberapa request, satu untuk setiap nilai. Tambahkan
-g(--globoff) untuk mengirimnya apa adanya. - Ini perintah wget, bukan curl
- Parser ini hanya membaca curl. Perintah yang disalin sebagai PowerShell dari browser memakai
Invoke-WebRequest; pilih Copy as cURL sebagai gantinya.
Pertanyaan umum
Apakah perintah saya dikirim ke mana pun?
Tidak. Perintah di-parse di browser Anda dan tidak ada request yang dibuat. Ini penting karena perintah yang disalin sering berisi token dan cookie asli. Perintah disimpan di session storage tab ini sampai Anda menghapusnya atau menutup tab; Copy link menaruhnya di link setelah tanda # (tidak pernah dikirim ke server), jadi periksa apakah ada kredensial sebelum membagikannya.
Opsi cURL apa saja yang dipahami parser?
Opsi yang mengubah request: -X, -H, -d dan variannya (--data-raw, --data-binary, --data-urlencode), --json, -F, -G, -I, -T, -u, -b, -A, -e, --oauth2-bearer, -L, -k, -m, dan --compressed. Opsi pendek bisa digabung, seperti -sSL, atau ditulis langsung dengan nilainya, seperti -XPOST. Opsi lain didaftar beserta fungsinya, dan opsi yang tidak dikenal juga didaftar, bukan dibuang.
Kenapa tertulis POST padahal perintah saya tidak punya -X?
curl mengirim POST setiap kali perintah punya body (-d, --json, atau -F) dan tidak ada method eksplisit, dan parser mengikuti aturan yang sama. -G justru mengirim data sebagai query string dengan GET, dan -I mengirim HEAD.
Bisakah parser membaca file yang dirujuk dengan @, seperti -d @body.json?
Tidak. Parser berjalan di browser dan tidak bisa membaca file di komputer Anda, jadi hanya menampilkan nama file dan catatan. Tempel isi file dengan --data-raw untuk melihat body-nya.
Seberapa tepat kode yang dihasilkan?
Method, URL, header, dan body-nya sama, dan body dikirim sebagai string yang sama tanpa di-encode ulang. Beberapa opsi curl tidak punya padanan: fetch tidak bisa melewati pengecekan sertifikat seperti -k, dan browser tidak mengizinkan fetch mengatur header Cookie. Kode yang dihasilkan menyebutkannya dalam komentar di tempat yang relevan. Kode Python memakai allow_redirects=False kecuali perintahnya punya -L, karena curl secara default tidak mengikuti redirect.