Tukar curl ke Clojure
curl2code menukar arahan curl kepada kod Clojure menggunakan clj-http. Penukaran ini berjalan dalam pelayar anda melalui WebAssembly untuk privasi lengkap. Untuk Elixir, lihat penukar curl ke Elixir kami. Untuk Java, lihat curl ke Java. Di bawah adalah contoh Clojure praktikal.
Cara menyalin curl daripada pelayar anda
- 1
Buka DevTools
Tekan F12 atau Ctrl+Shift+I untuk membuka alat pembangun pelayar anda.
- 2
Pergi ke tab Network
Klik tab Network dan lakukan tindakan yang mencetuskan permintaan HTTP.
- 3
Salin sebagai cURL
Klik kanan pada permintaan → Copy → Copy as cURL. Kemudian tampalkannya di atas.
Soalan Lazim
Apakah itu clj-http?
clj-http ialah pustaka klien HTTP yang paling popular untuk Clojure, membungkus Apache HttpComponents. Ia menyediakan API idiomatik yang dipacu data dengan penghuraian JSON/EDN automatik, pengurusan kuki, dan pengumpulan sambungan. Tambah ke project.clj: [clj-http "3.x"]. curl2code menggunakan clj-http untuk semua penukaran Clojure.
clj-http vs http-kit vs aleph — yang mana patut digunakan?
clj-http adalah segerak, kaya dengan ciri, dan paling banyak digunakan. http-kit adalah ringan dengan sokongan async, bagus untuk pelayan yang juga membuat panggilan HTTP. aleph dibina di atas Netty untuk I/O async berprestasi tinggi. Untuk bahasa fungsian yang serupa, lihat penukar curl ke Elixir atau curl ke OCaml kami.
Bagaimana cara mengendalikan pengesahan dalam Clojure?
Untuk pengesahan Bearer, tambah pengepala: (client/get url {:headers {"Authorization" "Bearer token"}'}). Untuk pengesahan Basic, gunakan pilihan terbina dalam: {:basic-auth ["user" "pass"]}. clj-http juga menyokong OAuth dan pengesahan digest. curl2code menukar bendera -u dan pengepala kepada peta Clojure yang idiomatik.
Bagaimana cara menghantar data borang multipart dalam Clojure?
Gunakan pilihan :multipart: (client/post url {:multipart [{:name "file" :content (clojure.java.io/file "doc.pdf")} {:name "desc" :content "My file"}]}). clj-http mengendalikan penjanaan sempadan dan Content-Type secara automatik. curl2code menukar bendera -F kepada corak Clojure ini.
Bagaimana cara mengendalikan ralat HTTP dalam Clojure?
Secara lalai, clj-http melontarkan ExceptionInfo pada respons bukan 2xx. Nyahaktifkan dengan {:throw-exceptions false} untuk mendapatkan peta respons sebaliknya. Periksa (:status response). Gunakan try/catch dengan ex-data untuk mengekstrak respons daripada pengecualian.
Bagaimana cara membuat permintaan HTTP async dalam Clojure?
Gunakan clj-http dengan {:async? true} yang mengembalikan future. Atau gunakan http-kit: (http/get url callback). Untuk permintaan selari, gunakan pmap atau saluran core.async. Future Clojure berjalan pada kumpulan utas JVM. Untuk keserentakan yang serupa, lihat curl ke Java.
Bagaimana cara menetapkan had masa tamat dalam Clojure?
Hantar pilihan had masa tamat: (client/get url {:connection-timeout 10000 :socket-timeout 30000}). Nilai adalah dalam milisaat. Untuk percubaan semula, gunakan pilihan :retry-handler atau bungkus dalam fungsi percubaan semula tersuai dengan backoff eksponen. Ini dipetakan kepada --connect-timeout dan --max-time curl.
Bagaimana cara menggunakan proksi dalam Clojure?
Tetapkan proksi dalam peta pilihan: (client/get url {:proxy-host "proxy" :proxy-port 8080}). Untuk proksi yang disahkan: tambah :proxy-user dan :proxy-pass. clj-http juga menyokong proksi SOCKS. curl2code menukar bendera -x dan --proxy kepada pilihan proksi Clojure yang betul.
Bagaimana cara menghantar permintaan POST dengan badan JSON dalam Clojure?
Tukar perintah curl POST seperti curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL ke Clojure menggunakan curl2code. Kod yang dihasilkan menggunakan (client/post url {:content-type :json :body (json/generate-string data)}). curl2code mengesan bendera -d/--data secara automatik dengan kandungan JSON dan menetapkan pengepala Content-Type yang sesuai dalam kod clj-http.
Bagaimana cara menambah kebenaran token Bearer dalam Clojure?
Masukkan curl -H "Authorization: Bearer YOUR_TOKEN" URL ke curl2code dan ia akan menghasilkan kod clj-http dengan pengepala auth: :headers {'Authorization' 'Bearer YOUR_TOKEN'}. curl2code mengesan token Bearer daripada kedua-dua bendera -H "Authorization: Bearer ..." dan --oauth2-bearer. Untuk Basic auth, gunakan -u user:pass.
Bagaimana cara menetapkan pengepala Content-Type dalam Clojure?
curl2code menukar curl -H "Content-Type: application/json" URL kepada kod clj-http dengan pengepala yang betul: :content-type :json. Untuk data -d, curl secara lalai menggunakan application/x-www-form-urlencoded; untuk muat naik borang -F, ia menggunakan multipart/form-data. curl2code memetakan setiap satu ke API clj-http yang betul.