Cara menggunakannya
- Salin permintaan sebagai curl, contohnya daripada alat pembangun pelayar anda (tab Network, klik kanan, Copy as cURL) atau daripada dokumentasi API.
- Tampalkannya ke dalam kotak. Penyambungan baris dengan \ boleh diterima.
- Pilih JavaScript fetch, Node.js axios, Python requests atau PHP cURL.
- Baca sebarang nota di bawah kod, kemudian salin atau muat turun hasilnya.
Cara ia berfungsi
Penukar mula-mula memecahkan arahan kepada perkataan seperti yang dilakukan oleh shell POSIX: petikan tunggal, petikan berganda dengan escape backslash, rentetan $'…' dan sambungan baris dengan backslash difahami. Pemboleh ubah shell seperti $TOKEN tidak dikembangkan; ia kekal sebagai teks.
Pilihan curl yang disokong: URL (atau --url), -X/--request, -H/--header, -d/--data, --data-ascii, --data-raw, --data-binary, --data-urlencode, --json, -F/--form dan --form-string (medan dan muat naik @file dengan ;type=), -u/--user, -G/--get, -I/--head, -A/--user-agent, -e/--referer, -b/--cookie (rentetan cookie), -L/--location dan --compressed. Pilihan pendek boleh digabungkan, seperti dalam -sSL, dan nilai boleh dilekatkan, seperti dalam -XPOST.
Peraturan mengikut curl: beberapa nilai -d digabungkan dengan &; data menjadikan permintaan sebagai POST kecuali -X atau -G menyatakan sebaliknya; -G melampirkan data ke URL sebagai rentetan pertanyaan; --json menetapkan pengepala Content-Type dan Accept kepada application/json. Apabila badan ialah JSON dan Content-Type menyatakan demikian, kod menghantar objek sebenar (json= dalam Python, tatasusunan dengan json_encode dalam PHP) dan bukannya rentetan yang di-escape. Untuk borang multipart, pengepala Content-Type diserahkan kepada pustaka supaya sempadannya betul.
-k/--insecure diabaikan dengan sengaja dan nota menerangkannya. Pilihan yang hanya mengubah output curl itu sendiri (-s, -S, -v, -i, -o, --fail dan seumpamanya) diabaikan dengan nota. Sebarang pilihan lain menghasilkan ralat jelas yang menamakannya, bukannya kod yang secara senyap melakukan sesuatu yang berbeza. Satu perbezaan kekal: curl mengikuti pengalihan hanya dengan -L, manakala fetch, axios dan requests mengikutinya secara lalai; kod PHP mengikutinya hanya apabila -L diberikan.
Alat ini hanya menulis kod. Ia tidak pernah menghantar permintaan, jadi token dan kata laluan dalam arahan tidak digunakan di mana-mana.
Contoh
Menghasilkan semula permintaan pelayar dalam Python
Salin panggilan API yang gagal dari tab Network Chrome sebagai cURL dan tukarkannya kepada Python requests. Pengepala, cookie dan badan JSON dibawa bersama, jadi anda boleh menghasilkan semula pepijat dalam skrip.
Menggunakan dokumentasi API dalam Node.js
Rujukan API menunjukkan “curl -u key: https://api.example.com/v1/charges -d amount=2000 -d currency=eur”. Versi axios menggunakan auth: { username: "key", password: "" } dan badan yang dienkodkan sebagai borang.
Muat naik fail dalam PHP
“curl -F 'file=@invoice.pdf;type=application/pdf' -F 'note=March' https://x.io/upload” menjadi CURLOPT_POSTFIELDS dengan new CURLFile('invoice.pdf', 'application/pdf') dan medan note.
Soalan Lazim
Adakah alat ini menghantar permintaan saya?
Tidak. Ia hanya menghuraikan teks arahan dan menjana kod. Tiada permintaan dibuat, jadi kunci API atau kuki dalam arahan tidak digunakan atau disimpan.
Mengapa -k/--insecure tidak ditukar?
Mematikan pemeriksaan sijil menjadikan sambungan terbuka kepada pemintasan. Kod yang dijana mengekalkan pemeriksaan; jika sijil pelayan tidak dipercayai, betulkan sijil atau stor kepercayaan.
Mengapa saya mendapat “pilihan tidak disokong”?
Penukar hanya menterjemah pilihan yang maknanya dapat dihasilkan semula dengan tepat. Proksi, sijil klien, balang kuki dan pilihan serupa ditolak supaya anda tidak mendapat kod yang berkelakuan berbeza daripada curl.
Adakah ia berfungsi dengan arahan Windows cmd?
Arahan yang disalin sebagai “cURL (bash)” paling sesuai. Windows cmd menggunakan ^ untuk penyambungan baris dan peraturan tanda petik yang berbeza; ^ pada hujung baris diterima, tetapi aksara escape cmd yang lain mungkin tidak.
Privasi
Arahan hanya dihuraikan dalam pelayar anda dan tiada permintaan dihantar. Tiada apa-apa dimuat naik, disimpan atau disertakan dalam analitik.