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. 1

    Otevřete DevTools

    Stiskněte F12 nebo Ctrl+Shift+I pro otevření vývojářských nástrojů prohlížeče.

  2. 2

    Přejděte na kartu Network

    Klikněte na kartu Network a proveďte akci, která vyvolá HTTP požadavek.

  3. 3

    Zkopírovat jako cURL

    Klikněte pravým tlačítkem na požadavek → CopyCopy 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.

Užitečné odkazy

Průvodci curl

Převést curl do jiných jazyků