Converti curl in Clojure
curl2code converte i comandi curl in codice Clojure utilizzando clj-http. La conversione avviene nel tuo browser tramite WebAssembly per la massima privacy. Per Elixir, consulta il nostro convertitore da curl a Elixir. Per Java, vedi da curl a Java. Di seguito sono riportati esempi pratici in Clojure.
Come copiare curl dal tuo browser
- 1
Apri DevTools
Premi F12 o Ctrl+Shift+I per aprire gli strumenti per sviluppatori del browser.
- 2
Vai alla scheda Network
Fai clic sulla scheda Network ed esegui l'azione che attiva la richiesta HTTP.
- 3
Copia come cURL
Fai clic con il tasto destro sulla richiesta → Copia → Copia come cURL. Quindi incollalo sopra.
Domande Frequenti
Cos'è clj-http?
clj-http è la libreria client HTTP più popolare per Clojure, che avvolge Apache HttpComponents. Fornisce un'API idiomatica e data-driven con parsing automatico di JSON/EDN, gestione dei cookie e connection pooling. Aggiungi a project.clj: [clj-http "3.x"]. curl2code usa clj-http per tutte le conversioni Clojure.
clj-http vs http-kit vs aleph — quale usare?
clj-http è sincrono, ricco di funzionalità e il più utilizzato. http-kit è leggero con supporto asincrono, ottimo per i server che effettuano anche chiamate HTTP. aleph è costruito su Netty per I/O asincrono ad alte prestazioni. Per linguaggi funzionali simili, vedi il nostro convertitore da curl a Elixir o curl a OCaml.
Come gestire l'autenticazione in Clojure?
Per l'autenticazione Bearer, aggiungi gli header: (client/get url {:headers {"Authorization" "Bearer token"}'}). Per l'autenticazione Basic, usa l'opzione integrata: {:basic-auth ["user" "pass"]}. clj-http supporta anche OAuth e l'autenticazione digest. curl2code converte i flag -u e gli header in mappe Clojure idiomatiche.
Come inviare dati form multipart in Clojure?
Usa l'opzione :multipart: (client/post url {:multipart [{:name "file" :content (clojure.java.io/file "doc.pdf")} {:name "desc" :content "My file"}]}). clj-http gestisce automaticamente la generazione del boundary e il Content-Type. curl2code converte i flag -F in questo pattern Clojure.
Come gestire gli errori HTTP in Clojure?
Per impostazione predefinita, clj-http lancia ExceptionInfo sulle risposte non-2xx. Disabilita con {:throw-exceptions false} per ottenere invece la mappa della risposta. Controlla (:status response). Usa try/catch con ex-data per estrarre la risposta dalle eccezioni.
Come effettuare richieste HTTP asincrone in Clojure?
Usa clj-http con {:async? true} che restituisce un future. Oppure usa http-kit: (http/get url callback). Per richieste parallele, usa pmap o i canali core.async. I future di Clojure vengono eseguiti sul thread pool della JVM. Per una concorrenza simile, vedi curl a Java.
Come impostare i timeout in Clojure?
Passa le opzioni di timeout: (client/get url {:connection-timeout 10000 :socket-timeout 30000}). I valori sono in millisecondi. Per i retry, usa l'opzione :retry-handler o avvolgi in una funzione di retry personalizzata con backoff esponenziale. Questi corrispondono a --connect-timeout e --max-time di curl.
Come usare un proxy in Clojure?
Imposta il proxy nella mappa delle opzioni: (client/get url {:proxy-host "proxy" :proxy-port 8080}). Per i proxy autenticati: aggiungi :proxy-user e :proxy-pass. clj-http supporta anche i proxy SOCKS. curl2code converte i flag -x e --proxy nelle corrette opzioni proxy di Clojure.
Come inviare una richiesta POST con un corpo JSON in Clojure?
Converti un comando curl POST come curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL in Clojure usando curl2code. Il codice generato utilizza (client/post url {:content-type :json :body (json/generate-string data)}). curl2code rileva automaticamente i flag -d/--data con contenuto JSON e imposta l'intestazione Content-Type appropriata nel codice clj-http.
Come aggiungere l''autorizzazione con Bearer token in Clojure?
Passa curl -H "Authorization: Bearer YOUR_TOKEN" URL a curl2code e genererà il codice clj-http con l'intestazione di autenticazione: :headers {'Authorization' 'Bearer YOUR_TOKEN'}. curl2code rileva i Bearer token sia dai flag -H "Authorization: Bearer ..." che --oauth2-bearer. Per la Basic auth, usa -u user:pass.
Come impostare l''intestazione Content-Type in Clojure?
curl2code converte curl -H "Content-Type: application/json" URL in codice clj-http con l'intestazione corretta: :content-type :json. Per i dati -d, curl utilizza come predefinito application/x-www-form-urlencoded; per i caricamenti di moduli -F, utilizza multipart/form-data. curl2code mappa ciascuno alla corretta API di clj-http.