curl konvertálása Clojure nyelvre
A curl2code a clj-http használatával konvertálja a curl parancsokat Clojure kóddá. A konverzió a böngészőben fut WebAssembly segítségével a teljes adatvédelem érdekében. Elixir esetén nézze meg a curl to Elixir konverterünket. Java esetén lásd: curl to Java. Alább gyakorlati Clojure példákat talál.
Hogyan másoljuk ki a curl parancsot a böngészőből
- 1
Nyissa meg a DevTools-t
Nyomja meg az F12 billentyűt vagy a Ctrl+Shift+I a böngésző fejlesztői eszközeinek megnyitásához.
- 2
Lépjen a Network fülre
Kattintson a Network fülre, és hajtsa végre a HTTP kérést kiváltó műveletet.
- 3
Másolás cURL-ként
Kattintson a jobb gombbal a kérésre → Copy → Copy as cURL. Ezután illessze be fent.
Gyakran Ismételt Kérdések
Mi az a clj-http?
A clj-http a legnépszerűbb HTTP kliens könyvtár Clojure-höz, amely az Apache HttpComponents-et csomagolja be. Idiomatikus, adatvezérelt API-t biztosít automatikus JSON/EDN feldolgozással, sütikezeléssel és kapcsolat-poolinggal. Add hozzá a project.clj fájlhoz: [clj-http "3.x"]. A curl2code a clj-http-t használja minden Clojure konverzióhoz.
clj-http vs http-kit vs aleph — melyiket használjam?
A clj-http szinkron, funkciógazdag és a legszélesebb körben használt. A http-kit könnyűsúlyú aszinkron támogatással, kiváló olyan szerverekhez, amelyek HTTP hívásokat is indítanak. Az aleph a Netty-re épül a nagy teljesítményű aszinkron I/O érdekében. Hasonló funkcionális nyelvekért lásd a curl to Elixir konvertáló vagy curl to OCaml eszközeinket.
Hogyan kezelhető a hitelesítés Clojure-ben?
Bearer auth esetén adj hozzá fejléceket: (client/get url {:headers {"Authorization" "Bearer token"}'}). Basic auth-hoz használd a beépített opciót: {:basic-auth ["user" "pass"]}. A clj-http támogatja az OAuth-ot és a digest auth-ot is. A curl2code a -u és fejléc flageket idiomatikus Clojure map-ekre konvertálja.
Hogyan küldhetők multipart form adatok Clojure-ben?
Használd a :multipart opciót: (client/post url {:multipart [{:name "file" :content (clojure.java.io/file "doc.pdf")} {:name "desc" :content "My file"}]}). A clj-http automatikusan kezeli a boundary generálást és a Content-Type-ot. A curl2code a -F flageket erre a Clojure mintára konvertálja.
Hogyan kezelhetők a HTTP hibák Clojure-ben?
Alapértelmezés szerint a clj-http ExceptionInfo-t dob nem 2xx válaszok esetén. Kapcsold ki a {:throw-exceptions false} opcióval, hogy helyette a válasz map-et kapd meg. Ellenőrizd a (:status response) értéket. Használj try/catch blokkot az ex-data függvénnyel a válasz kinyeréséhez a kivételekből.
Hogyan indíthatók aszinkron HTTP kérések Clojure-ben?
Használd a clj-http-t a {:async? true} opcióval, ami egy future-t ad vissza. Vagy használd a http-kit-et: (http/get url callback). Párhuzamos kérésekhez használd a pmap függvényt vagy core.async csatornákat. A Clojure future-ök a JVM szálpoolján futnak. Hasonló párhuzamosságért lásd: curl to Java.
Hogyan állítható be időtúllépés Clojure-ben?
Add át az időtúllépési opciókat: (client/get url {:connection-timeout 10000 :socket-timeout 30000}). Az értékek ezredmásodpercben értendők. Újrapróbálkozásokhoz használd a :retry-handler opciót, vagy csomagold egy egyedi újrapróbálkozási függvénybe exponenciális visszalépéssel. Ezek a curl --connect-timeout és --max-time opcióinak felelnek meg.
Hogyan használható proxy Clojure-ben?
Állítsd be a proxyt az opciós map-ben: (client/get url {:proxy-host "proxy" :proxy-port 8080}). Hitelesített proxykhoz: add hozzá a :proxy-user és :proxy-pass kulcsokat. A clj-http támogatja a SOCKS proxykat is. A curl2code a -x és --proxy flageket a megfelelő Clojure proxy opciókra konvertálja.
Hogyan küldhető POST kérés JSON törzzsel Clojure nyelven?
Konvertáljon egy olyan curl POST parancsot, mint a curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL, Clojure kódra a curl2code segítségével. A generált kód a (client/post url {:content-type :json :body (json/generate-string data)}) megoldást használja. A curl2code automatikusan felismeri a JSON tartalmú -d/--data flageket, és beállítja a megfelelő Content-Type fejlécet a clj-http kódban.
Hogyan adható hozzá Bearer token hitelesítés Clojure nyelven?
Adja át a curl -H "Authorization: Bearer YOUR_TOKEN" URL parancsot a curl2code eszköznek, és az legenerálja a clj-http kódot az auth fejléccel: :headers {'Authorization' 'Bearer YOUR_TOKEN'}. A curl2code felismeri a Bearer tokeneket a -H "Authorization: Bearer ..." és a --oauth2-bearer flagekből is. Basic auth esetén használja a -u user:pass kapcsolót.
Hogyan állítható be a Content-Type fejléc Clojure nyelven?
A curl2code a curl -H "Content-Type: application/json" URL parancsot a megfelelő fejléccel ellátott clj-http kódra konvertálja: :content-type :json. A -d adatoknál a curl alapértelmezés szerint az application/x-www-form-urlencoded értéket használja; a -F űrlapfeltöltéseknél pedig a multipart/form-data értéket. A curl2code mindegyiket a megfelelő clj-http API-hoz rendeli.
Hasznos linkek
curl útmutatók
curl hibakódok
Keress rá bármely curl kilépési kódra — okok, javítások és hibakeresési tippek.
Fájlok letöltése curl segítségével
Fájlok mentése -o és -O kapcsolókkal, átirányítások követése, letöltés folytatása és egyebek.
SSL, TLS és proxy
Tanúsítványok, TLS verziók, HTTP/SOCKS proxyk és egyéni DNS beállítása.