Konvertera curl till Clojure
curl2code konverterar curl-kommandon till Clojure-kod med clj-http. Konverteringen körs i din webbläsare via WebAssembly för total integritet. För Elixir, kolla in vår curl till Elixir-konverterare. För Java, se curl till Java. Nedan finns praktiska Clojure-exempel.
Hur man kopierar curl från din webbläsare
- 1
Öppna DevTools
Tryck på F12 eller Ctrl+Shift+I för att öppna webbläsarens utvecklarverktyg.
- 2
Gå till fliken Network
Klicka på fliken Network och utför åtgärden som utlöser HTTP-begäran.
- 3
Kopiera som cURL
Högerklicka på begäran → Copy → Copy as cURL. Klistra sedan in den ovan.
Vanliga frågor
Vad är clj-http?
clj-http är det mest populära HTTP-klientbiblioteket för Clojure och omsluter Apache HttpComponents. Det erbjuder ett idiomatiskt, datadrivet API med automatisk JSON/EDN-tolkning, cookie-hantering och anslutningspoolning. Lägg till i project.clj: [clj-http "3.x"]. curl2code använder clj-http för alla Clojure-konverteringar.
clj-http vs http-kit vs aleph — vilken ska man använda?
clj-http är synkront, funktionsrikt och det mest använda. http-kit är lättviktigt med stöd för asynkronitet, utmärkt för servrar som även gör HTTP-anrop. aleph är byggt på Netty för högpresterande asynkron I/O. För liknande funktionella språk, se vår curl till Elixir-konverterare eller curl till OCaml.
Hur hanterar man autentisering i Clojure?
För Bearer-autentisering, lägg till headers: (client/get url {:headers {"Authorization" "Bearer token"}'}). För Basic-autentisering, använd det inbyggda alternativet: {:basic-auth ["user" "pass"]}. clj-http stöder även OAuth och digest-autentisering. curl2code konverterar -u och header-flaggor till idiomatiska Clojure-maps.
Hur skickar man multipart-formulärdata i Clojure?
Använd alternativet :multipart: (client/post url {:multipart [{:name "file" :content (clojure.java.io/file "doc.pdf")} {:name "desc" :content "My file"}]}). clj-http hanterar generering av boundary och Content-Type automatiskt. curl2code konverterar -F-flaggor till detta Clojure-mönster.
Hur hanterar man HTTP-fel i Clojure?
Som standard kastar clj-http ExceptionInfo vid svar som inte är 2xx. Inaktivera med {:throw-exceptions false} för att få svars-mappen istället. Kontrollera (:status response). Använd try/catch med ex-data för att extrahera svaret från undantag.
Hur gör man asynkrona HTTP-anrop i Clojure?
Använd clj-http med {:async? true} vilket returnerar en future. Eller använd http-kit: (http/get url callback). För parallella anrop, använd pmap eller core.async-kanaler. Clojure-futures körs på JVM:s trådpool. För liknande samtidighet, se curl till Java.
Hur ställer man in timeouts i Clojure?
Skicka timeout-alternativ: (client/get url {:connection-timeout 10000 :socket-timeout 30000}). Värden anges i millisekunder. För omprövningar, använd alternativet :retry-handler eller slå in i en anpassad omprövningsfunktion med exponentiell backoff. Dessa motsvarar curls --connect-timeout och --max-time.
Hur använder man en proxy i Clojure?
Ställ in proxy i inställnings-mappen: (client/get url {:proxy-host "proxy" :proxy-port 8080}). För autentiserade proxies: lägg till :proxy-user och :proxy-pass. clj-http stöder även SOCKS-proxies. curl2code konverterar -x och --proxy-flaggor till korrekta Clojure-proxyalternativ.
Hur skickar man en POST förfrågan med JSON body i Clojure?
Konvertera ett curl POST kommando som curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL till Clojure med curl2code. Den genererade koden använder (client/post url {:content-type :json :body (json/generate-string data)}). curl2code detekterar automatiskt -d/--data flaggor med JSON innehåll och ställer in rätt Content-Type header i clj-http kod.
Hur lägger man till Bearer token auktorisering i Clojure?
Skicka curl -H "Authorization: Bearer YOUR_TOKEN" URL till curl2code så genereras clj-http kod med auth header: :headers {'Authorization' 'Bearer YOUR_TOKEN'}. curl2code detekterar Bearer tokens från både -H "Authorization: Bearer ..." och --oauth2-bearer flaggor. För Basic auth, använd -u user:pass.
Hur ställer man in Content-Type header i Clojure?
curl2code konverterar curl -H "Content-Type: application/json" URL till clj-http kod med rätt header: :content-type :json. För -d data använder curl som standard application/x-www-form-urlencoded; för -F formuläruppladdningar används multipart/form-data. curl2code mappar varje del till rätt clj-http API.