Převést curl do Clojure
curl2code převádí curl příkazy na kód v Clojure pomocí clj-http. Převod probíhá ve vašem prohlížeči přes WebAssembly pro úplné soukromí. Pro Elixir se podívejte na náš převodník curl do Elixiru. Pro Javu viz curl do Javy. Níže jsou praktické příklady v Clojure.
Jak zkopírovat curl z prohlížeče
- 1
Otevřete DevTools
Stiskněte F12 nebo Ctrl+Shift+I pro otevření vývojářských nástrojů prohlížeče.
- 2
Přejděte na kartu Network
Klikněte na kartu Network a proveďte akci, která vyvolá HTTP požadavek.
- 3
Zkopírovat jako cURL
Klikněte pravým tlačítkem na požadavek → Copy → Copy as cURL. Poté jej vložte výše.
Často kladené dotazy
Co je clj-http?
clj-http je nejpopulárnější knihovna HTTP klienta pro Clojure, obalující Apache HttpComponents. Poskytuje idiomatické, daty řízené API s automatickým parsováním JSON/EDN, správou cookies a connection poolingem. Přidejte do project.clj: [clj-http "3.x"]. curl2code používá clj-http pro všechny převody do Clojure.
clj-http vs http-kit vs aleph — co použít?
clj-http je synchronní, bohatý na funkce a nejpoužívanější. http-kit je lehký s podporou async, skvělý pro servery, které také provádějí HTTP volání. aleph je postaven na Netty pro vysoce výkonné asynchronní I/O. Pro podobné funkcionální jazyky viz náš převodník curl do Elixiru nebo curl do OCamlu.
Jak řešit autentizaci v Clojure?
Pro Bearer auth přidejte hlavičky: (client/get url {:headers {"Authorization" "Bearer token"}'}). Pro Basic auth použijte vestavěnou volbu: {:basic-auth ["user" "pass"]}. clj-http také podporuje OAuth a digest auth. curl2code převádí -u a přepínače hlaviček na idiomatické mapy Clojure.
Jak poslat multipart form data v Clojure?
Použijte volbu :multipart: (client/post url {:multipart [{:name "file" :content (clojure.java.io/file "doc.pdf")} {:name "desc" :content "My file"}]}). clj-http automaticky řeší generování boundary a Content-Type. curl2code převádí přepínače -F na tento vzor Clojure.
Jak řešit chyby HTTP v Clojure?
Ve výchozím nastavení clj-http vyhazuje ExceptionInfo při odpovědích jiných než 2xx. Vypněte to pomocí {:throw-exceptions false}, abyste místo toho získali mapu odpovědi. Zkontrolujte (:status response). Použijte try/catch s ex-data pro vytažení odpovědi z výjimek.
Jak provádět asynchronní HTTP požadavky v Clojure?
Použijte clj-http s {:async? true}, což vrací future. Nebo použijte http-kit: (http/get url callback). Pro paralelní požadavky použijte pmap nebo kanály core.async. Clojure futures běží na thread poolu JVM. Pro podobnou souběžnost viz curl do Javy.
Jak nastavit timeouty v Clojure?
Předejte volby timeoutu: (client/get url {:connection-timeout 10000 :socket-timeout 30000}). Hodnoty jsou v milisekundách. Pro opakování použijte volbu :retry-handler nebo zabalte do vlastní funkce pro opakování s exponenciálním odstupem. Tyto odpovídají --connect-timeout a --max-time v curl.
Jak používat proxy v Clojure?
Nastavte proxy v mapě voleb: (client/get url {:proxy-host "proxy" :proxy-port 8080}). Pro autentizované proxy: přidejte :proxy-user a :proxy-pass. clj-http také podporuje SOCKS proxy. curl2code převádí přepínače -x a --proxy na správné volby proxy v clj-http.
Jak odeslat POST požadavek s JSON tělem v Clojure?
Převeďte curl POST příkaz jako curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL do Clojure pomocí curl2code. Vygenerovaný kód používá (client/post url {:content-type :json :body (json/generate-string data)}). curl2code automaticky detekuje -d/--data přepínače s JSON obsahem a nastaví odpovídající Content-Type hlavičku v kódu pro clj-http.
Jak přidat autorizaci pomocí Bearer tokenu v Clojure?
Vložte curl -H "Authorization: Bearer YOUR_TOKEN" URL do curl2code a nástroj vygeneruje kód pro clj-http s autorizační hlavičkou: :headers {'Authorization' 'Bearer YOUR_TOKEN'}. curl2code detekuje Bearer tokeny z přepínačů -H "Authorization: Bearer ..." i --oauth2-bearer. Pro Basic auth použijte -u user:pass.
Jak nastavit hlavičku Content-Type v Clojure?
curl2code převede curl -H "Content-Type: application/json" URL na kód pro clj-http se správnou hlavičkou: :content-type :json. Pro data u -d curl standardně používá application/x-www-form-urlencoded; pro nahrávání formulářů přes -F používá multipart/form-data. curl2code mapuje každý z nich na správné clj-http API.