curl-ді Clojure тіліне түрлендіру

curl2code curl командаларын clj-http пайдаланып, Clojure кодына түрлендіреді. Толық құпиялылық үшін түрлендіру браузеріңізде WebAssembly арқылы орындалады. Elixir үшін біздің curl-ді Elixir-ге түрлендіргішімізді қараңыз. Java үшін curl-ді Java-ға қараңыз. Төменде практикалық Clojure мысалдары берілген.

Браузерден curl-ді қалай көшіруге болады

  1. 1

    DevTools-ты ашу

    Браузердің әзірлеуші құралдарын ашу үшін F12 пернесін немесе Ctrl+Shift+I басыңыз.

  2. 2

    Network қойындысына өтіңіз

    Network қойындысын басып, HTTP сұрауын тудыратын әрекетті орындаңыз.

  3. 3

    cURL ретінде көшіру

    Сұрауды оң жақ түймемен басыңыз → CopyCopy as cURL. Содан кейін оны жоғарыдағы өріске қойыңыз.

Жиі қойылатын сұрақтар

clj-http дегеніміз не?

clj-http — Apache HttpComponents-ті орайтын Clojure-ге арналған ең танымал HTTP клиенттік кітапханасы. Ол автоматты JSON/EDN талдауы, cookie файлдарын басқару және қосылымдар пулы бар идиоматикалық, деректерге негізделген API ұсынады. project.clj-ге қосыңыз: [clj-http "3.x"]. curl2code барлық Clojure түрлендірулері үшін clj-http қолданады.

clj-http vs http-kit vs aleph — қайсысын қолданған жөн?

clj-http — синхронды, мүмкіндіктері мол және ең көп қолданылатын кітапхана. http-kit — асинхронды қолдауы бар жеңіл кітапхана, HTTP шақыруларын жасайтын серверлер үшін тамаша. aleph — жоғары өнімді асинхронды I/O үшін Netty негізінде жасалған. Ұқсас функционалды тілдер үшін біздің curl-ден Elixir-ге түрлендіргішті немесе curl-ден OCaml-ға қараңыз.

Clojure-де аутентификацияны қалай өңдеуге болады?

Bearer auth үшін тақырыптар қосыңыз: (client/get url {:headers {"Authorization" "Bearer token"}'}). Basic auth үшін кірістірілген опцияны қолданыңыз: {:basic-auth ["user" "pass"]}. clj-http сонымен қатар OAuth және digest auth қолдайды. curl2code -u және тақырып жалаушаларын идиоматикалық Clojure карталарына түрлендіреді.

Clojure-де multipart форма деректерін қалай жіберуге болады?

:multipart опциясын қолданыңыз: (client/post url {:multipart [{:name "file" :content (clojure.java.io/file "doc.pdf")} {:name "desc" :content "My file"}]}). clj-http шекараны құруды және Content-Type-ты автоматты түрде өңдейді. curl2code -F жалаушаларын осы Clojure үлгісіне түрлендіреді.

Clojure-де HTTP қателерін қалай өңдеуге болады?

Әдепкі бойынша, clj-http 2xx емес жауаптар кезінде ExceptionInfo лақтырады. Оның орнына жауап картасын алу үшін {:throw-exceptions false} арқылы өшіріңіз. (:status response) мәнін тексеріңіз. Ерекше жағдайлардан жауапты алу үшін try/catch бар ex-data қолданыңыз.

Clojure-де асинхронды HTTP сұраныстарын қалай жасауға болады?

Future қайтаратын clj-http опциясымен {:async? true} қолданыңыз. Немесе http-kit қолданыңыз: (http/get url callback). Параллель сұраныстар үшін pmap немесе core.async арналарын қолданыңыз. Clojure future-лері JVM ағындар пулында орындалады. Ұқсас конкуренттілік үшін curl-ден Java-ға қараңыз.

Clojure-де күту уақытын қалай орнатуға болады?

Күту уақыты опцияларын беріңіз: (client/get url {:connection-timeout 10000 :socket-timeout 30000}). Мәндер миллисекундпен беріледі. Қайталаулар үшін :retry-handler опциясын қолданыңыз немесе экспоненциалды артқа шегінуі бар реттелетін қайталау функциясына ораңыз. Бұлар curl-дің --connect-timeout және --max-time опцияларына сәйкес келеді.

Clojure-де проксиді қалай қолдануға болады?

Опциялар картасында проксиді орнатыңыз: (client/get url {:proxy-host "proxy" :proxy-port 8080}). Аутентификацияланған проксилер үшін: :proxy-user және :proxy-pass қосыңыз. clj-http сонымен қатар SOCKS проксилерін қолдайды. curl2code -x және --proxy жалаушаларын дұрыс Clojure прокси опцияларына түрлендіреді.

Clojure тілінде JSON денесі бар POST сұрауын қалай жіберуге болады?

curl2code құралын пайдаланып, curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL сияқты curl POST командасын Clojure кодына түрлендіріңіз. Жасалған код (client/post url {:content-type :json :body (json/generate-string data)}) функциясын пайдаланады. curl2code құралы JSON мазмұны бар -d/--data жалаушаларын автоматты түрде анықтайды және clj-http кодында тиісті Content-Type тақырыбын орнатады.

Clojure тілінде Bearer токенімен авторизацияны қалай қосуға болады?

curl2code құралына curl -H "Authorization: Bearer YOUR_TOKEN" URL командасын беріңіз, ол келесі авторизация тақырыбы бар clj-http кодын жасайды: :headers {'Authorization' 'Bearer YOUR_TOKEN'}. curl2code құралы Bearer токендерін -H "Authorization: Bearer ..." және --oauth2-bearer жалаушаларынан анықтайды. Basic auth үшін -u user:pass пайдаланыңыз.

Clojure тілінде Content-Type тақырыбын қалай орнатуға болады?

curl2code құралы curl -H "Content-Type: application/json" URL командасын тиісті тақырыбы бар clj-http кодына түрлендіреді: :content-type :json. -d деректері үшін curl әдепкі бойынша application/x-www-form-urlencoded мәнін пайдаланады; -F форма жүктеулері үшін ол multipart/form-data мәнін қолданады. curl2code әрқайсысын дұрыс clj-http API интерфейсіне сәйкестендіреді.

Пайдалы сілтемелер

curl нұсқаулықтары

curl-ді басқа тілдерге түрлендіру